コンテンツへスキップ

GoogleマップのAPIエラー:api keys with referer restrictions cannot be used with this api

GoogleマップのAPIって使ったことありませんか?
登録したんですけどこのエラーが出るんですよ

api keys with referer restrictions cannot be used with this api

でエラーでググると制限をかけるように書いてありまして
制限をかけてもまだエラーが直らないんですよ
ちなみにハマってる人はたくさんいるみたいです
https://qiita.com/yoshiwo/items/0b4a84d2413a87218139
こちらを参考に制限かけようとしたらGeocoding APIがないどうしたらいいのか?

ググっているとこちらへたどり着く、

こちら参考

色々調べているとこちらのリンクが見つかり

https://console.cloud.google.com/apis/api/geocoding_backend/overview

実際は、

https://console.cloud.google.com/apis/library

こちらのリンクからAPIを探すのがいいですね。

選択中の API:
Directions API
Geocoding API
Geolocation API
Maps JavaScript API
Places API

いくら追加しても同じエラーが出るぞと友達に連絡してました。何時間か待っていたら使えるようになっていました。5分くらい待つと書いてありますが私の場合5分どころではありませんでした。

import requests
# from django.shortcuts import render

def display_map(location_name):
    # ジオコーディングを行うためのAPIキーを設定します
    api_key = 'your API key'

    # ジオコーディングAPIのURL
    geocoding_url = 'https://maps.googleapis.com/maps/api/geocode/json'

    # ジオコーディングを行う場所の名前(例: 八王子駅)
    # location_name = '八王子駅'

    # ジオコーディングAPIにリクエストを送信します
    response = requests.get(geocoding_url, params={'address': location_name, 'key': api_key})
    data = response.json()
    print(data)

    if data['status'] == 'OK':
        # ジオコーディングAPIから返された結果を解析し、緯度と経度を取得します
        latitude = data['results'][0]['geometry']['location']['lat']
        longitude = data['results'][0]['geometry']['location']['lng']

        context = {
            'latitude': latitude,
            'longitude': longitude,
        }
        return( context)
    else:
        # ジオコーディングが失敗した場合のエラーハンドリングを行います
        error_message = 'ジオコーディングが失敗しました'
        context = {
            'error_message': error_message,
        }
        return( context)

location_name = '八王子駅'
print(display_map(location_name))

上記コードを走らせると、こんな感じで出力されました。

{'results': [{'address_components': [{'long_name': 'Hachiōji Station', 'short_name': 'Hachiōji Station', 'types': ['establishment', 'point_of_interest', 'train_station', 'transit_station']}, {'long_name': '1', 'short_name': '1', 'types': ['political', 'sublocality', 'sublocality_level_4']}, {'long_name': '1丁目', 'short_name': '1丁目', 'types': ['political', 'sublocality', 'sublocality_level_3']}, {'long_name': 'Asahichō', 'short_name': 'Asahichō', 'types': ['political', 'sublocality', 'sublocality_level_2']}, {'long_name': 'Hachioji', 'short_name': 'Hachioji', 'types': ['locality', 'political']}, {'long_name': 'Tokyo', 'short_name': 'Tokyo', 'types': ['administrative_area_level_1', 'political']}, {'long_name': 'Japan', 'short_name': 'JP', 'types': ['country', 'political']}, {'long_name': '192-0083', 'short_name': '192-0083', 'types': ['postal_code']}], 'formatted_address': 'Hachiōji Station, 1丁目-1 Asahichō, Hachioji, Tokyo 192-0083, Japan', 'geometry': {'location': {'lat': 35.6556157, 'lng': 139.3388529}, 'location_type': 'ROOFTOP', 'viewport': {'northeast': {'lat': 35.6565716302915, 'lng': 139.3401072302915}, 'southwest': {'lat': 35.6538736697085, 'lng': 139.3374092697085}}}, 'partial_match': True, 'place_id': 'ChIJm3bo4tsdGWARdW7IcuYMzfE', 'plus_code': {'compound_code': 'M84Q+6G Hachioji, Tokyo, Japan', 'global_code': '8Q7XM84Q+6G'}, 'types': ['establishment', 'point_of_interest', 'train_station', 'transit_station']}], 'status': 'OK'}
{'latitude': 35.6556157, 'longitude': 139.3388529}

ようやくグーグル・マップのAPIが使えるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です