私たちはクライアントの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)"
私の資格情報ページには、参照元を受け入れるための追加の可能性が欠けているため、参照元の追加を含む解決策は現時点では不可能です。
私の資格情報ページ:
なぜそのようなエラーが発生するのでしょうか。どうすれば修正できますか?
これはすでにいくつかの答えがある古い質問ですが、私も同じ問題を抱えていました。私にとって問題は、console.developers.google.comで提供されている例に従って、*.domain.tld/*
の形式でドメインを入力したことです。これはまったく機能せず、domain.tld
、domain.tld/*
、*.domain.tld
など、これにあらゆる種類のバリエーションを追加しようとしました。
私にとってそれを解決したのは、実際のプロトコルも追加したことです。 http://domain.tld/*
は、サイトで機能するために必要な唯一のものです。 HTTPSに切り替える場合は、https://domain.tld/*
を追加する必要があると思います。
更新:Googleはプレースホルダーを更新し、http
を含めるようになりました。
グーグルに来て、あなたはみんなAPIクレデンシャルページが許すよりスマートだ。 (私は2人の息子が働いているので知っています。)
「参照元」のリストは、許可されているものよりはるかに賢いものです。 (もちろん、もっと寛容になるべきです。)発見するのに時間かかる規則をいくつか示します。
*
は、文字列比較のように機能するようです。おそらく他にもルールがありますが、これは退屈な推測ゲームです。
私はGoogleがフォームフィールドに入力した例に欠陥があることに気付くまで、さまざまなリファラーのバリエーションを試し、5分間待ちました。彼らは示す:
*.example.com/*
ただし、ドメイン名の前にsubdomain.
またはwww.
がある場合にのみ機能します。次のことがすぐにうまくいきました(Googleの例から先頭のピリオドを省略)。
*example.com/*
変更した場合、設定が反映されるまでに最大5分かかる場合があります。
グーグルドキュメント によると、これは、Google Maps APIを使用しているurl
が、not registered
内のlist 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
は仕事を始めます。
正しいAPISが有効になっていることも確認してください。
私は上記のすべて、アスタリスク、ドメインTLD、スラッシュ、バックスラッシュ、そしてすべてを試しました。
これはすべてうまくいきませんでした。最後に、Googleでは、使用するAPIを今すぐ指定する必要があることに気付きました(スクリーンショット参照)
有効にする必要があるものがありませんでした(私にとってはMaps JavaScript APIでした)。
有効にすると、すべて次のものを使用して正常に動作しました。
私はそれが誰かに役立つことを願っています! :)
私はあなたのHTTP Referreres
さえ十分に有効であることを発見しました、API Restrictions
の間違ったセットはGoogle Maps JavaScript API error: RefererNotAllowedMapError
を引き起こします。
例えば:
http://localhost/*
をApplication Restrictions / HTTP Referrences
に追加Maps Embed API
の代わりにMaps Javascript API
を選択してくださいRefererNotAllowedMapError
を引き起こします数年の間に多くの想定される解決策があります、そして、いくつかはもはや働かないで、何もしなかったので、私の最新の2018年7月の終わりごとに働く。
設定:
Google Maps JavaScript APIは正しく動作する必要があります…
example.com
とexample.net
user22656.example.com
など.http://www.example.com/
とhttps://example.net/
解決策:
<https (or) http>://*.example.com/*
。*.
がホスト名の先頭に付きます)。RefererNotAllowedMapError
エラーがまだ適切な設定を使用して(そして十分な時間を待って)現れたように感じました。認証情報キーを削除し、要求を繰り返し(現在はInvalidKeyMapError
になります)、新しい認証情報を(まったく同じ設定を使用して)作成しましたが、それ以降はうまくいきました。(テキストとして:)
Accept requests from these HTTP referrers (web sites)
https://*.example.com/*
https://example.com/*
http://*.example.com/*
http://example.com/*
私は同じエラーを経験しました:
このリンクでは、APIキーの制限を設定する方法について説明しています。 https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions
私の場合、問題は、私がこの制限を使用していたことです。
HTTPリファラー(Webサイト)これらのHTTPリファラー(Webサイト)からの要求を受け入れます(オプション)ワイルドカードに*を使用します。これを空白のままにした場合、リクエストはどの参照元からも受け付けられます。本番でこのキーを使用する前に、必ず参照元を追加してください。
https://*.example.net/*
つまり、 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/ などのURLは機能しません。私は単に2番目の参照元を追加する必要がありました:
https://example.net/*
これで問題は解決しました。
より深いネストページの場合
たとえばフォルダー内にプロジェクトがある場合や入れ子になったページがある場合
これを入力できるhttp://yourdomain.com/your-folder/your-page
http://yourdomain.com/*/*
どれだけ遠くまで行く必要があるかによって、重要な部分は/*/*/*
です
*
は/
と一致しないか、より深いパスに入りません。
これよりも深いネストがない限り、これによってフルドメインアクセスが可能になります。
あなたはあなたのapi信任状ページのスクリーンショットを見せます、しかし、あなたは「ブラウザキー1」をクリックしてそして参照者を加えるためにそこから行く必要があります。
サブドメインでは、ワイルドカード(アスタリスク)は使用できません。
Googleがプレースホルダーに言っていることを忘れて、それは許可されていません。
2つのウェブサイトドメインを追加し、サブドメインに "*"を設定しても機能しませんが、同じGoogle Map APIキーを使用して特定のサブドメイン "WWW"と非サブドメインが機能しています。
お役に立てば幸いです。
お支払いが有効になっていること
あなたのウェブサイトがGoogleコンソールに追加されたこと
あなたのウェブサイトがあなたのアプリの参照元に追加されていること。
(wwwとnone wwwの両方にワイルドカードを使用します)
http://www.example.com/ *および http://example.com/ *
Javascript Mapsが有効になっており、正しい認証情報を使用していること
上記のGoogleコンソールを有効にするために、WebサイトがDNSに追加されていること。
それが働いた後に微笑んでください!
グーグルからのこの助言を使用することによって私はついに私の仕事を得ました:( https://support.google.com/webmasters/answer/35179 )
これがドメインとサイトの定義です。これらの定義は、検索コンソールの検証に固有のものです。
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
RefererNotAllowedMapError
が請求アカウントがプロジェクトにリンクされていないことによって引き起こされる可能性があることが判明するまで、これらの修正はどれも私にとって役に立ちませんでした。だからあなたの無料トライアルか何かを有効にするようにしてください。
私もこの作品を作るのに苦労しましたが、ここにいくつかのポインタがあります:
http
が含まれます。 http://example.com/*
上記のすべてが解決されると、マップは期待どおりに表示されました。
これはひどい実装をしているもう一つのかわいいGoogle製品です。
私がこれで見つけた問題はあなたがIPアドレスによってAPIキーを制限するならば、それが機能しないということです...しかし、この点を明確にすることはグーグルからそれほど遠くありません...
IPアドレス制限付きのAPIキーは、サーバー側からの使用を目的としたWebサービス(ジオコーディングAPIや他のWebサービスAPIなど)でのみ使用できます。これらのWebサービスのほとんどは、Maps JavaScript API内に同等のサービスがあります(たとえば、ジオコーディングサービスを参照)。 Maps JavaScript APIクライアントサイドサービスを使用するには、HTTP参照元制限で保護できる別のAPIキーを作成する必要があります(APIキーの制限を参照)。
https://developers.google.com/maps/documentation/javascript/error-messages
FFS Google ...セットアップについて明確にしておくとよいでしょう。かなり重要な情報です。
http://www.example.com/ *試行錯誤の末、私のために働きました。
制限を(Noneに)削除することは私のために働きました。
Places API(オートコンプリート)を使用しようとしましたが、Places APIが機能する前に、Google Cloud ConsoleからMaps Javascript APIも有効にする必要がありました。
ChromeのJavascriptコンソールでは、HTTP参照元リストでページアドレス全体を宣言することをお勧めしています。この場合は http://mywebsite.com/map.htm ですが正確なアドレスは http://www.mywebsite.com/map.htm です。他のユーザーの提案どおり、すでにワイルドカードのスタイルがリストされていますが、それが私のために働くだろう唯一の方法。
現場でデッキをチェックしてください。 Google Maps JavaScript APIをロードするには、次のようなscriptタグを使用してください。
<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/*