このIP、サイト、またはモバイルアプリケーションは、このAPIキーの使用を許可されていません


98

https://maps.googleapis.com/maps/api/geocode/jsonを使用していますか?サーバーキーとユーザーIPにリンクして、任意のアドレスの緯度と経度を検索します。

私はgoogleからのサーバーアクセスキーを持っており、サーバーのIPアドレスをホワイトリストに追加しました。

PHP CURLを介してアクセスしようとしているURLは次のとおりです。

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

私が得ている結果:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

設定が必要なものはありますか?ジオコーディングAPIもオンになっています。


あなたはグーグルから承認されたキーを取得し、それをAPIに入れる必要があります
Dimag Kharab 14

すでにAPIキーが利用可能です
sanket 2014

それが私のために働いたマイクの答えをチェックしてください
シェラズ・アフマド・キルジ2014

mike20132013の回答を受け入れてください!できます!
aveschini

回答:


150

私は同じ問題を抱えていて、これを見つけました。

URLでは、アプリのAPIキーではなく、サーバーキーが最後に必要です。

したがって、基本的には、次のようにURLの最後にサーバーキーを追加するだけです。

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

ここで、サーバーキーを取得するには、次の手順に従います。

1) Developer Console https://code.google.com/apis/console/にアクセスします

2)認証情報の[パブリックAPIアクセス]で、新しいキーを作成します

3)オプションからサーバーキーを選択します。

4)フィールドにIPアドレスを入力します。IPアドレスがさらにある場合は、すべての行に追加できます。注:テスト目的で使用する場合にのみ、IPアドレスを入力します。それ以外の場合は、IPアドレスセクションを空白のままにします。

5)完了したら、[作成]をクリックすると新しいサーバーキーが生成され、そのサーバーキーをURLに追加できます。

最後に、sensor = trueをURLの中央に置く代わりに、次のように最後に追加することができます。

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

これは間違いなく問題を解決し、のサーバーキーを使用することを忘れないでくださいPlaces API

編集

ここ数年でウェブのURLが変わったと思います。ここから開発者コンソールにアクセスできます-https://console.developers.google.com/apis/dashboard

  • 開発者コンソール-https://console.developers.google.com/に移動するか、詳細からのリンクを使用してAPIダッシュボードに直接移動します。
  • 開発者コンソールの下で、左側のナビゲーションパネルからラベルを見つけます
  • プロジェクトを選択
  • 左側のナビゲーションパネルから[ 認証情報]を選択します
  • 必要に応じて、上部ナビゲーションバーから資格情報タイプを作成できます。

この回答があなたや他の視聴者の役に立つことを願っています。幸運を .. :)


8
非常に重要4)フィールドにIPアドレスを入力します。IPアドレスが複数ある場合は、1行ごとに追加できます。注:IPアドレスは、テスト目的で使用する場合にのみ入力してください。それ以外の場合は、IPアドレスセクションを空白のままにします。
Sheraz Ahmad Khilji 14

6
正解です。テスト目的でのみIPアドレスを指定してください。それ以外の場合は空白のままにします。特定のデバイス/アプリでのみ機能するようにアプリまたはAPIキーを制限しているためです。
mike20132013、2014

1
@johnshumonはい私は推測します..年齢の答えを更新していません。新しいAPIの変更の可能性があります。
mike20132013 2015年

1
Google Places API Webサービスが有効なAPIであることも確認したい場合があります
Justin Wilson

1
Google APIがこれらのさまざまな一般エラーの発生を停止するには、新しい「プロジェクト」をGoogleクラウド請求先アカウントにリンクする必要があることに気付く前に、何時間もこれに取り組みました。しきい値は0ドルに設定できるため、使用量が許可された割り当てを超えた場合に課金されることはありません。
Sparky

15
  1. キーを選択
  2. API制限タブ
  3. APIキーを選択
  4. 保存する
  5. アプリケーション制限を選択->なし
  6. 保存する

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

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

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

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


APIの制限にリストされているサービスはいくつかありましたが、ジオコーディングはありませんでした
Muhammad Umer

魅力のように働いた。ジオコーディングを試みてくれてありがとう。あなたが指摘してそれが機能したので、私はアプリの制限をなしに設定しました。
ラビ

4
制限:どれもかなり危険です。
Deniss M.

8
セキュリティを無効にすることは解決策ではありません!
Bartholomej

APIキーを制限せずに放置しないでください! Google APIがこれらのさまざまな一般エラーの発生を停止するためには、新しい「プロジェクト」を請求先アカウントにリンクする必要があります。しきい値は0ドルに設定できるため、使用量が許可された割り当てを超えた場合に課金されることはありません。
Sparky

14

割り当てられたAPIキーに加えて、Googleは、REFERRERまたはIPアドレスのいずれかを確認することで、受信リクエストのソースを確認します。curlで例を実行するにServer Keyは、Google APIコンソールで新しいを作成します。作成中に、サーバーのIPアドレスを指定する必要があります。この場合、ローカルIPアドレスになります。Server KeyIPアドレスを作成してホワイトリストに登録すると、curlで新しいAPIキーを使用できるようになります。

私の推測ではBrowser Key、IPアドレスをホワイトリストに登録する必要はなく、代わりREFERRERに検証にHTTPヘッダータグを使用するAPIキーを作成したと思います。curlはデフォルトではこのタグを送信しないため、Googleはリクエストの検証に失敗しました。


1+ Googleのジオコードサービスを使用するには、サーバーAPIキーを作成する必要があります。また、GoogleのAPIコンソールからGoogleマップのジオコーディングサービスを有効にする必要があります。
Sumit Munot 2014

Google APIがこれらのさまざまな一般エラーの発生を停止するには、新しい「プロジェクト」をGoogleクラウド請求先アカウントにリンクする必要があることに気付く前に、何時間もこれに取り組みました。しきい値は0ドルに設定できるため、使用量が許可された割り当てを超えた場合に課金されることはありません。
スパーキー

6

Google Places APIは現在、Google APIコンソールから生成されたAndroidまたはiOSキーをサポートしていません。サーバーとブラウザのキーのみが現在サポートされています。


1
興味深い...では、AndroidまたはiOSアプリで使用するキーをどのように生成するのでしょうか。
Graham Perks

ブラウザキーはAndroidとiOSで機能します。Google APIコンソールでブラウザキーを取得する
Nazrul Islam

彼らはいくつかの余分な努力なしではありません。昨日イライラした一日の後でこれを理解しました。アプリには追加の手順があります:stackoverflow.com/a/58136437/434004
Graham Perks

3

このアクションを許可しない方法で制限したAPIキーを使用しようとしています。

Googleによると:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

したがって、正しいことは、別のAPIキーを作成し、この問題に適切な制限を選択することです。あなたのケースでは、「IPアドレス」(「アプリケーション制限」の下)を選択し、「アイテムの追加」を使用してサーバーIPを追加します。空白のリストを残しても機能せず、Googleが制限を「なし」に変更することに注意してください。

また、「API制限」の下に関連するAPIを追加することを忘れないでください(あなたの場合は「ジオコーディングAPI」)。

最後に、アプリをGoogle Cloud請求先アカウントにリンクするまで、GoogleはこのAPIの使用をブロックしています。したがって、まだ実行していない場合は、応答が正常に取得されると、最初に実行する必要があると表示されます(無料の開始パッケージがあります)。


2

あなたはリファラーなしでキーを作成しますリファラーアドレスを入力しないでください


詳しい説明をお願いします
Sagar Devanga

2
リファラーアドレスを追加する場所としてキーを作成している間に、そこに何かを追加したことを確認してください。追加された場合クリアする
DeadlyDroid

2

Google Place APIでは、API呼び出しを行うときにリファラーHTTPヘッダーを含める必要があります。

HTTPヘッダー「Referer:yourdomain.com」を含めると、応答の問題が修正されます。


1
これは質問に答えることがありますが、あなたが何をしているのかを説明するためにあなたの答えにいくつかのテキストを入れることは常に良い考えです。良い答えを書く方法を読んでください。また、いくつかのコードを含める必要があります。
ヨルゲンR

スニペットを提供してください
Sagar Devanga

これが私がしたことです、そしてそれは完全に機能しました:var options = {url:url、headers:{Referer: ' xxx.herokuapp.com '}}; request.get(options、function(...
Florida G.

1

また、対応するAPIを特定のプロジェクトで有効にする必要があります

https://console.developers.google.com/apis/library?project=projectnamehere


1

APIの最新バージョンでは、正反対のことが当てはまるようです。

URL https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>を呼び出すと、次のエラーが発生しました

Google Maps Platform APIへの各リクエストを認証するには、APIキーを使用する必要があります。詳細については、http://g.co/dev/maps-no-accountを参照してください。

注文を切り替えると、https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>問題なく動作しました。

上記で受信したエラーメッセージは、ブラウザで直接URLに移動したときに表示されたメッセージであることに注意してください。ソフトウェアプログラムからAPIを呼び出すと、基本的に次のメッセージを含むHTML応答を受け取りました。

申し訳ありませんが、お使いのコンピュータまたはネットワークが自動クエリを送信している可能性があります。ユーザーを保護するため、現在リクエストを処理できません。


Google APIがこれらのさまざまな一般エラーの発生を停止するには、新しい「プロジェクト」をGoogleクラウド請求先アカウントにリンクする必要があることに気付く前に、何時間もこれに取り組みました。しきい値は0ドルに設定できるため、使用量が許可された割り当てを超えた場合に課金されることはありません。
Sparky


0

認証、割り当て、料金設定、ポリシー 認証認証APIを使用するには、最初にAPIを有効にし、適切な認証資格情報を取得する必要があります。詳しくは、Google Maps Platformスタートガイドをご覧ください。

割り当てと価格設定APIの割り当てと価格設定の詳細については、使用量と請求のページを確認してください。

ポリシーDirections APIの使用は、APIポリシーに準拠している必要があります。

もっと知る:訪問:--- https://developers.google.com/maps/documentation/directions/start?hl=en_US


-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

次のようにAppDelegateにのみ追加

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

このURLのキーを削除します。

今のURLは

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving

-3

方向APIとジオコーディングAPIの両方を無効にして、再度有効にします。

5〜10秒しか機能せず、自動的に無効になります。

つまり、割り当てをテストする時間は5〜10秒しかないということです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.