Google Maps JavaScript API RefererNotAllowedMapError


122

私たちは、クライアントの1人用のジオプレースメントアプリを開発しようとしています。まず、独自のドメインでテストします。

Google Maps JavaScript APIに署名しており、有効なブラウザキーがあり、ドメインwww.grupocamaleon.comがそのキーの使用を承認されています。

しかし、エラーなしで実行する最も簡単な例すら作成できません。

私たちのドメインには、キーを使用して次のデモがあります。

(1)http://www.grupocamaleon.com/boceto/aerial-simple.html

しかし、それは機能せず、Firebugコンソールはこう言います:

「Google Maps APIエラー:Google Maps APIエラー:RefererNotAllowedMapError(RefererNotAllowedMapErrorに関するGoogleドキュメントへのリンク)承認するサイトのURL:(1)」

私の資格情報ページには、受け入れるリファラーを追加する可能性がないため、現在、リファラーの追加を含むソリューションは不可能です。

私の資格ページ:

ここに画像の説明を入力してください

なぜそのエラーが発生するのですか?どうすれば修正できますか?


Google Maps APIリファラーの重複の可能性は許可されていませんあなたのコードは私のために(私のキーで)機能するため、キー、許可された参照元、またはそれで使用できるサービスに問題があります。
geocodezip 2016

しかし、私がここで私の回答で確認できるように、私の資格情報ページではそのような可能性はありません。ヒントはありますか?
GrupoCamaleónCreativos 2016

さて、私は初心者ですが、このサイトの使い方をまだ知りません。ご不便をおかけして申し訳ありません。質問を編集し、資格情報ページに情報を追加しました。引用されているいくつかの解決策は、リファラーの追加を含みますが、現時点ではできません。
GrupoCamaleónCreativos 2016

キーの参照元を変更できない場合は、削除するか、自分で制御するキーに置き換えます。キーは必須ではありませんが、含めることにはメリットがあります。
geocodezip '12

1
APPやAPIの制限なしで新しいキーを作成しましたが、expiredKeyが10分間表示された後、機能し始めました。次に、Places APIだけを追加してみましたが、それはWebから呼び出されておりGoogle Maps JavaScript API error: RefererNotAllowedMapError、待機後でも次のように述べています。そして、私が試したMaps JavaScript APIし、それが言い続けRefererNotAllowedMapError、ページを更新しようと、それは最終的には2分40秒後に作業を開始しました。だから、地獄を見てください。しかし、何もしMaps JavaScript APIなくても私にとってはうまくいきます。あなたはただたくさん待たなければならない。
psycho brm 2018年

回答:


167

これはすでにいくつかの回答が含まれている古い質問であることはわかっていますが、同じ問題がありました。私にとっての問題は、console.developers.google.comで提供されている例に従って、ドメインをの形式で入力したことです*.domain.tld/*。これは、すべてでは動作しませんでしたし、私は次のようにこれまでのバリエーションのすべての種類を追加しようとしたdomain.tlddomain.tld/**.domain.tldなど

私にとってそれを解決したのは、実際のプロトコルも追加することでした。http://domain.tld/*私のサイトで動作させるために必要なのはこれだけです。https://domain.tld/*HTTPSに切り替える場合は、追加する必要があると思います。

更新:Googleはようやくプレースホルダーを更新して、次の内容を含めましたhttp

Google Maps APIリファラー入力フィールド


1
確認:APIの使用を許可した唯一の組み合わせはhttp://www.---.com/*
Marco Panichi

6
この答えが私のコードを機能させた唯一のものです。Googleが提供する例が機能しないことを確認できます。
Jargs

なぜこの質問に「ベストアンサー」としてマークされた回答がなかったのですか?特にpowerbuoyのもの。
Mohammad Saberi

1
@Google、虚偽の情報をご提供いただきありがとうございます。http://----.com/*が正しい形式です。
Michael Yaeger 2016

2
複数のサブドメインがある場合は、http://*.example.comとhttps://*.example.comですべてのベースをカバーできます
tim.baker

21

Googleにアクセスしてください。皆さんはAPI資格情報ページで許可されているよりも賢いです。(私はそこで働いている2人の息子がいるので知っています。)

「リファラー」のリストは、それが許可するよりもはるかに厳格です。(もちろん、もっと寛容なはずです。)発見するのに何時間もかかったいくつかのルールがあります:

おそらく他のルールがあるでしょうが、これは退屈な推測ゲームです。


1
編集前の回答についても、もう我慢できません。ワイルドカード(*)はアドレスの末尾(http://my.site.com/*)またはサブドメイン(http://*.site.com)でのみ機能するようです。他のすべてのケースでは機能しません
クリスティアントラエナ

1
Places API(リファラー制限のすぐ隣にあるタブ)のみを許可する制限を誤って設定しました。これにより、同じRefererNotAllowedMapErrorエラーが発生します。
Matt Greer

wwwを追加しています。私のドメイン名に修正してくれました。ワイルドカード(*)をドメインの末尾に追加したかどうかなど(https://www.my-site.com/*)、問題が修正されたかどうかはわかりません。
ムジェ、

私のイオンモバイルアプリのドメインはionic:// app#/ tabsです。どのように制限に含めますか?多くの組み合わせを試しましたが、無駄でした。例:ionic:// app#/ tabs、httpionic:// app#/ tabs、httpsionic:// app#/ tabs、ionic:// *、ionic:// app#/ *、httpionic:// *、 ......
AUK4SO

@ AUK4SO-ポンド記号(#)は、URLで特別な意味を持ちます。を参照してください<a name=...>。それとも、どういう意味iconic://1234/fooですか?
リックジェームズ

18

ドキュメントによると、「RefererNotAllowedMapError」は

Google Maps JavaScript APIをロードしている現在のURLは、許可されている参照元のリストに追加されていません。Google Developers ConsoleでAPIキーのリファラー設定を確認してください。

私は自分の個人/仕事用にGoogle Maps Embed APIをセットアップしており、これまでのところHTTPリファラーを指定していません。エラーは登録していません。設定により、アクセスしているURLが登録または許可されていないようにGoogleに認識させる必要があります。

ここに画像の説明を入力してください


15

変更しただけでは、設定が有効になるまでに最大5分かかる場合があります。


15

多くのリファラーのバリエーションを試し、Googleがフォームフィールドに入力するサンプルに欠陥があることに気づくまで5分間待ちました。彼らは示す:

*.example.com/*

ただし、これはドメイン名を持っているsubdomain.場合www.、またはドメイン名の前にある場合にのみ機能します。以下はすぐに機能しました(Googleの例では先頭の期間を省略しています)。

*example.com/*

8
悪い考え-誰かがhackexample.comあなたのAPIを作成して使用する可能性
HyderA 2017

3
@HyderA-より可能性が高いのは、誰かが無料のGoogleアカウントを登録して、追加のマップロードを取得することです。
ow3n 2017

@HyderA彼らはまだ鍵を必要とするので、大きなチャンスではありません。しかし、あなたは正しい、まだ潜在的なリスクがあります。
Eoin

私のイオンモバイルアプリのドメインはionic:// app#/ tabsです。どのように制限に含めますか?多くの組み合わせを試しましたが、無駄でした。例:ionic:// app#/ tabs、httpionic:// app#/ tabs、httpsionic:// app#/ tabs、ionic:// *、ionic:// app#/ *、httpionic:// *、 ......
AUK4SO

10

よるGoogleドキュメント ので、これが起こったのurlあなたは、それをGoogleマップAPIを使用している上not registeredlist of allowed referrers

編集:

Googleドキュメントから

指定されたドメインのすべてのサブドメインも承認されます。

場合はhttp://example.comが認可され、その後、http://www.example.comをも許可されています。逆は当てはまりません。http//www.example.comが承認された場合、http://example.comは必ずしも承認されません。

だから、http://testdomain.comドメインを設定してください、それからあなたhttp://www.testdomain.comは仕事を始めます。


私の場合、ドメインのDNSの構成が誤っていました。例:www.testdomain.comは正常に機能しましたtestdomain.comは機能せず、エラーが発生しました
Tahir Khalid

1
その論理は逆転したように見えるでしょうか?私が何かを逃していない限り。
twobob 2017年

10

正しいAPIが有効になっていることも確認してください。

上記のすべて、アスタリスク、ドメインTLD、フォワードスラッシュ、バックスラッシュなどすべてを試しましたが、最後の希望として1つのURLだけを入力しました。

これはすべて機能しませんでしたが、最終的に私は使用するAPIを指定する必要があることもわかりました(スクリーンショットを参照)

ここに画像の説明を入力してください

有効にする必要のあるものがありませんでした(私にとってはMaps JavaScript APIでした)

それを有効にすると、すべてを使用して正常に動作しました:

http://www.example.com/ *

それが誰かを助けることを願っています!:)


8

あなたでもHTTP Referreres十分に有効で、間違った一連のAPI Restrictions原因があることがわかりましたGoogle Maps JavaScript API error: RefererNotAllowedMapError

例えば:

  • キーにJavaScript APIを使用しています。
  • 追加http://localhost/*しますApplication Restrictions / HTTP Referrences
  • Maps Embed API代わりに選択Maps Javascript API
  • これは〜をひき起こす RefererNotAllowedMapError

はい、私の場合、誤分類が問題でした
Andriy F.

しかし、セキュリティはどうですか?localhostを許可した場合、誰かがlocalhostで私のキーを使用できますか?
Kaushal

8

ワイルドカード(アスタリスク)は、サブドメイン部分では許可されていません

  • 誤り: * .example.com / *
  • 右: example.com/*

Googleがプレースホルダーで言うことを忘れてください、それは許可されていません。


次のように追加するにはどうすればよいですか:sc.maindomain.com/Survey/UpdateInspection/102
dE Source

1
次のように設定できますsc.maindomain.com/*
Daniel Loureiro

5

数年にわたって多くの想定される解決策があり、いくつかはもはや機能しなくなり、一部は機能しなかったので、2018年7月末までに私の最新の解決策が機能します。

セットアップ:

Google Maps JavaScript APIは…で適切に動作する必要があります…

  • APIを呼び出す複数のドメイン:example.comおよびexample.net
  • 任意のサブドメイン:user22656.example.comなど
  • セキュアおよび標準のHTTPプロトコル:http://www.example.com/およびhttps://example.net/
  • 不明確なパス構造(つまり、多数の異なるURLパス)

解決:

  • 実際にプレースホルダーのパターンを使用しています:<https (or) http>://*.example.com/*
  • プロトコルを省略せず、ドメインごとに2つのエントリを追加します(プロトコルごとに1つ)。
  • サブドメインの追加エントリ(*.ホスト名が先行)。
  • RefererNotAllowedMapErrorエラーはまだ適切な構成を使用して(そして十分な時間待機して)表示されたように感じました。資格情報キーを削除し、リクエストを繰り返しました(現在は取得しています)InvalidKeyMapError)、新しい資格情報を(まったく同じ設定を使用し)作成しました。
  • 単なるプロトコルとドメインの追加には、サブドメインが含まれていないようです。
  • ドメインの1つでは、作業構成は次のようになります。

Google API構成のスクリーンショット

(テキストとして:)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*

私の場合、このソリューションは役に立ちましたが、間違ったAPIに対するAPI制限がありました。何らかの理由で、同じエラーメッセージが返されました。API制限を「Places API」から「Maps JavaScript API」に変更すると、問題が修正されました。
LMG、

4

ここに画像の説明を入力してください

これらのHTTPリファラー(Webサイト)からの要求を受け入れる

localhostディレクトリパスを書き込む


3
Googleのテキストによると、空白、それが動作する必要がある場合、オプションの特性であるとすることになっている
ejectamenta

@ayanchakraborty- localhost / index.html(およびさまざまなパス)の10種類の組み合わせと、file:///android_assets/www/index.htmlのさまざまな組み合わせを試しましたが、何も機能しません。コンソールのRefererNotAllowedMapErrorが表示されます:承認されるサイトのURL:__file_url __ // android_asset / www / index.html#/ tab / map //// `-しかし、これとバリエーションはどちらも機能しません。
rolinger

4

私は同じエラーを経験しました:

ここに画像の説明を入力してください

このリンクでは、APIキーの制限を設定する方法について説明しています。https//cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

私の場合、問題は私がこの制限を使用していたことでした:

HTTPリファラー(Webサイト)これらのHTTPリファラー(Webサイト)からの要求を受け入れます(オプション)ワイルドカードには*を使用します。空白のままにすると、すべてのリファラーからのリクエストが受け入れられます。本番環境でこのキーを使用する前に、必ずリファラーを追加してください。 https://*.example.net/*

この手段は、次のようなURLのことhttps://www.example.netまたはhttps://m.example.netまたはhttps://www.example.net/San-salvador/が働くだろう。しかし、のようなURLをhttps://example.netまたはhttps://example.netまたはhttps://example.net/San-salvador/は動作しません。2つ目のリファラーを追加するだけで済みます。

https://example.net/*

これで問題が解決しました。



3

API資格情報ページのスクリーンショットを表示しますが、「ブラウザーキー1」をクリックしてそこから参照元を追加する必要があります。


3

より深くネストされたページの場合

たとえば、フォルダまたはネストされたページにプロジェクトがある場合

http://yourdomain.com/your-folder/your-page これを入力できます

http://yourdomain.com/*/*

重要な部分は、/*/*/*どこまで行く必要があるかによる

と思われる*一致しません/か深いパスに入ります。..

これにより、ネストの深さが深い場合を除き、完全なドメインアクセスが提供されます。


3

RefererNotAllowedMapErrorプロジェクトに請求先アカウントがリンクされていないことが原因であることが判明するまで、これらの修正はどれも機能しませんでした。したがって、無料トライアルなどを有効にしてください。


3
  1. 課金が有効になっている

  2. ウェブサイトがGoogleコンソールに追加されたこと

  3. あなたのウェブサイトがあなたのアプリのリファラーに追加されること。

  4. (wwwとnone wwwの両方にワイルドカードを使用します)

http://www.example.com/ *およびhttp://example.com/ *

  1. そのJavaScriptマップが有効になっていて、正しい資格情報を使用している

  2. 上記のGoogleコンソールを有効にするために、ウェブサイトがDNSに追加されていること。

  3. それが機能した後、笑顔!


許可された参照元のリストは、Google Cloud Platform Webコンソール(console.cloud.google.com)のAPIs & Services > Credentials > (your key) > Application restrictions > HTTP Referrers
Master of Ducksに

3

これはひどい実装を持つもう1つのsh1tty Google製品です。

私がこれで見つけた問題は、IPアドレスでAPIキーを制限した場合、機能しないことです...しかし、この点を明確にするのはGoogleから遠く離れています...トラブルシューティングと調査を行って初めて、次のことがわかりました。

IPアドレス制限のあるAPIキーは、サーバー側からの使用を目的としたWebサービス(Geocoding APIや他のWebサービスAPIなど)でのみ使用できます。これらのWebサービスのほとんどは、Maps JavaScript API内に同等のサービスがあります(たとえば、ジオコーディングサービスを参照してください)。Maps JavaScript APIクライアントサイドサービスを使用するには、HTTPリファラー制限で保護できる個別のAPIキーを作成する必要があります(APIキーの制限を参照)。

https://developers.google.com/maps/documentation/javascript/error-messages

FFS Google ...セットアップを明確にするのに役立つかなり重要な情報...



2

私はGoogleからのこのヒントを使用して最終的に動作しました:(https://support.google.com/webmasters/answer/35179

ドメインとサイトの定義は次のとおりです。これらの定義はSearch Consoleの検証に固有です。

http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site

2

私もこれを機能させるのに苦労しましたが、ここにいくつかの指針があります:

  • 参照元として設定されたURLにはhttphttp://example.com/*
  • Google Maps JavaScript APIが有効になりました
  • このアカウントで請求が設定されました

上記のすべてが解決されると、マップは期待どおりに表示されました。


1

Places API(オートコンプリート)を使用しようとしていて、Places APIが機能する前に、Google Cloud Console内からMaps JavaScript APIを有効にする必要がありました。


0

サイトでデッキを確認してください。Google Maps JavaScript APIをロードするには、次のようなスクリプトタグを使用します

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>

WordPressサイトのfunction.phpファイルでこの宣言を使用しています

wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);

この形式でAPIキーを設定しましたが、正常に機能します

http://my-domain-name(without www).com/*

この宣言は機能していません

*.my-domain-name.com/*

0

(Noneへの)制限の削除は私のために働いた。


6
制限を削除することは悪い習慣と見なされ、APIが脆弱になります。
mtness

2
@mtnessはい、当然ですが、ポスターはすでに最初に試してみましたが成功していません。残念ながら、Googleのドキュメントはこれ以上役に立ちません。ここでのすべての答えは新しいヒントをもたらしています。それはほとんど推測ゲームのようなものです...
ジェームズウォン-モニカーを復活させる


0

ChromeのJavaScriptコンソールは、このインスタンスでは、私は私のHTTPリファラーリストでページ全体のアドレスを宣言提案http://mywebsite.com/map.htm正確なアドレスがあるにもかかわらずhttp://www.mywebsite.com/map.htm -私はすでに他の人が示唆したようにワイルドカードのスタイルを挙げていましたが、これが私にとってうまくいく唯一の方法でした。


0

これでうまくいきました。APIキー設定での制限には、主に2つのカテゴリがあります。

  • Application restrictions
  • API restrictions

アプリケーションの制限:

リファラーセクションの下部に、WebサイトのURL " http://www.grupocamaleon.com/boceto/aerial-simple.html "を追加します。さまざまな要件に基づいて、セクションの右側にルールの例があります。

アプリケーションの制限

APIの制限:

API制限の下では、ドロップダウンリストから「Maps JavaScript API」を明示的に選択する必要があります。これは、一意のキーがGoogle Maps APIの呼び出し(おそらく)にのみ使用され、以下のスナップでわかるように保存するためです。これがあなたのためにうまくいくことを願っています.....私のために働いた

ここに画像の説明を入力してください

スクリプトを確認します。

また、スクリプトタグ内の不適切なキー供給が原因で問題が発生する場合もあります。次のようになります。

  <script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.