先日、Google Mapsで
Oops! Something went wrong.
というエラーが現れ、地図が正しく表示されなくなりました。
Google Mapsに代表されるGoogleのAPIは、コードを貼り付けるだけで手軽に利用できた時期を経て、認証情報(APIキー)の取得が必要になっています。ここ数年はその過渡期とあってAPIキーがなくても利用できましたが、最近になってAPIキーの必須化をはじめている様子です。
ここではAPIキーの取得と設定方法について説明します。
APIキーが必要になるのは、APIのリクエスト数を管理することが目的であり、更には一定以上利用しているユーザーに課金するためです。
それぞれのAPIには無料で利用できるリクエスト数の上限が設けられています。この制限は、地図API・動画API・検索APIなど種類によって異なります。
リクエスト数が上限を超えた場合、課金の対象になりますが、即座に請求書が送られてくるようなことではありません。
課金の可否(支払いの意思)はこちらで切り替える必要があり、課金を拒否したまま上限を超えるとエラーが出る(特に2016年10月22日以降はこうなると記載されています)というのが基本姿勢です。
APIを管理する開発者向けのコンソールGoogle Developers Consoleに移動します。
https://console.developers.google.com/?hl=JA
GoogleのIDでログインします。未取得の場合は登録(サインイン)してください。
コンソールにログインし、まずプロジェクトを作成します。
次にAPIキーを発行します。
ドメインは、例えば複数のサブドメインに割り当てるために
*.bizweb.jp
というようにアスタリスク(*)をワイルドカードとして利用できます。
ここでドメイン(リファラー=アクセス元)による制限を設けることで、第3者がAPIキーを不正に利用することを防げます。
最後に、登録したAPIキーを使用するAPIの種類を確定させ「有効化」します。
例えば、ドラッグできるタイプの地図であれば「Google Maps Javascript API」、静止画タイプの地図は「Google Static Maps API」を選択します。
以下のようにJavascriptファイルを呼び出すscriptタグをAPIキー付きに変更します。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=(true/false)"></script>
↓
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=(APIキー)"></script>
ドメインもgoogle.comからgoogleapis.comに変わっているので、この機に変更しておきましょう。
以下のようにimgタグをAPIキー付きに変更します。
<img src="http://maps.google.com/maps/api/staticmap?sensor=&size=¢er=&zoom=&markers=" />
↓
<img src="https://maps.googleapis.com/maps/api/staticmap?key=(APIキー)&sensor=&size=¢er=&zoom=&markers=" />
ドメインもgoogle.comからgoogleapis.comに変わっているので、この機に変更しておきましょう。
Javasriptから各APIをダイナミックに呼び出す場合は、次のようにAPIキーを追記します。
google.load("maps", "3", {
"other_params": "sensor=false&key=(APIキー)",
} );
コンソールでは、登録したAPIの利用数を確認できます。
エラーリクエスト数も表示されるので、デバッグ時にも便利です。