はじめに
ポートフォリオ制作中です!
今回はデプロイ後のGoogleMapとGeocodingがうまく動作しなかったため
本番環境でも動作せず、開発環境でdb:seedし直すと開発環境でも動作しなくなってしまったため、解決方法をまとめておきます!
エラー状況
本番環境でも、開発環境でも、rails db:seedすると下記のエラーが出るようになった
$ rails db:seed
Google API error: request denied (API keys with referer restrictions cannot be used with this API.).
また、Googlemapは表示されるが、緯度経度が正しくないため変な場所にピンが刺さっている(Google Mapが表示されない問題もありましたが、本番環境ウェブサイトのURLを許可してないだけだった)
原因
このエラーはコードの問題ではなく、APIの制限設定によるものです
上記の公式ドキュメントに記載されているように、Geocoding APIのキーの制限方法をHTTPリファラーにしていると先ほどのエラーが起きるようです!そのため、キーの制限方法をIPアドレスに切り替えることで解決できそうです
解決方法
上記のリンクに飛び、左上のハンバーガーメニューから「APIとサービス」を選択します
次に「認証情報」をクリックし、APIキーの一覧が出てくるため、該当のAPIを選択します
IPアドレスを選択し、+ボタンのADDからIPアドレスを追加しましょう
注意⚠️
ここに追加するIPアドレスは、本番環境、開発環境二つのIPアドレスを入れます
どちらか一方しか入れない場合はどちらか一方しか適用されません
さいごに
Geocoding APIやPlaces APIのようなウェブサービス APIに対しては、
「HTTP リファラー」でのアプリケーションの制限ができないとのことです!
Maps JavaScript APIは「HTTP リファラー」で問題ないため開発環境と本番環境のURLを指定しています!
参照記事