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が使えるようになりました。