@cider0421

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Google CloudのThis API project is not authorized to use this APIエラーが分からない

Google CloudのThis API project is not authorized to use this APIエラーが分からない

Google CloudでAPIキー取得したため、レスポンスが取得できるか確かめたいのですが、うまくいきません。
解決方法を教えて下さい。

発生している問題・エラー

{
   "error_message" : "This API project is not authorized to use this API.",
   "html_attributions" : [],
   "results" : [],
   "status" : "REQUEST_DENIED"
}

実行したコード(cmd)

curl -L -X GET "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7937,-122.3965&radius=500&type=restaurant&key=APIキー"

実行したコード(Python)

import requests

API_KEY = "APIキー"
BASE_URL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json"
location = "35.6895,139.6917"  # 東京の緯度と経度
radius = 5000  # 検索半径(メートル)
keyword = "コンビニ"  # 検索キーワード

def test_places_api():
    params = {
        "key": API_KEY,
        "location": location,
        "radius": radius,
        "keyword": keyword
    }
    response = requests.get(BASE_URL, params=params)
    data = response.json()
    print("APIレスポンス:", data)

test_places_api()

自分で試したこと

検索エンジンで「This API project is not authorized to use this API.」と検索しましたが、
以下のように制限解除する方法しか見つかりませんでした。
https://qiita.com/yoshiwo/items/0b4a84d2413a87218139

Google Maps Platform/鍵と認証情報/API キー/鍵を表示します
上記でAPI キー取得してまして、キーを制限しないにしてます。(Places API(New)は許可済み)

因みに、Google Cloudは入ったばかりなので無料トライアル中ではあります。

0 likes

1Answer

CMDとpython両方でそのエラーが出てますか? そうならAPIキーが怪しいです。
APIキーを有効化してますか?
一方でしかエラーが出てないのでしたらCommandもしくはコードがおかしいです。

0Like

Comments

  1. @cider0421

    Questioner

    コメントありがとうございます。
    はい、CMDとpython両方でこの同じエラーが出ています。

    APIキーの方も何度か確認していて、有効化できていると思っているのですが。。
    (key=の箇所に「鍵を表示します」で表示された値を入れています)

    無題.png

    画像1.png

    無題2.png

  2. スクリーンショット 2025-03-23 105418.png
    この画面はどうなってますか?

  3. OAuth同意画面を作成してくださいとメッセージがでてますが、そちらのほうは?

  4. @cider0421

    Questioner

    いずれも下記の値が表示されていました。cmdやpythonの実行時に表示はされるようです。
    トラフィック:places-backend.googleapis.com
    エラー:places-backend.googleapis.com
    中央値のレイテンシ:places-backend.googleapis.com

    OAuth同意画面の方は設定を入れて表示が出なくなりました。
    再度cmdとpythonでコード実行しましたが結果変わらずでした。
    無題2.png
    画像3.png
    画像2.png

  5. OAuth同意画面の設定変更は、反映に数分から長くても数十分程度掛かります。

  6. 訂正します。「ユーザーのGoogle Driveのファイルにアクセスしたり、Gmailのメールを読んだりするなど、特定のエンドユーザーのデータにアクセスする必要がある場合は、OAuth 2.0認証を使用します」とのことで設定は不要でした。すみません。

  7. 私の場合、Geminiを使っているのですが、「APIとサービス」みてGoogle Mapと関連付けられている(有効化されている)か教えてください。
    スクリーンショット 2025-03-23 135535.png

  8. あ、リストにGeocoding APIが入ってますね……

  9. 結局、Places API (New)を使って、以下のコードが動きました。お試しください

    curl -X POST -d '{
      "textQuery" : "vegetarian food",
      "pageSize" : "10",
      "locationRestriction": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
    }' \
      -H 'Content-Type: application/json' \
      -H 'X-Goog-Api-Key: API_KEY' \
      -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
      'https://places.googleapis.com/v1/places:searchText'
    
  10. @cider0421

    Questioner

    お返事遅くなりました。
    ご連携頂いたコードで試しましたがこちらでも取得できました!

    コードの書き方に問題があったかもしれませんね。。
    本当はGoogleMapのレビューの取得系の処理をやってみたかったのですが、
    Places API (New)の仕様をよく見てからまた試してみることにします。

    ご丁寧に調べて頂きありがとうございました。

  11. なんかPlace APIとPlace API(new)の仕様が変わっていて、エンドポイントも違うので、
    情報がごっちゃになって私も戸惑いました。
    うまくいってよかったです。

Your answer might help someone💌