1.前書き
Google Maps PlatformのAPIに課金が必要となる。そのニュースはずいぶん前から言われていました。そして2018年の夏、「Google Cloud Platform上で課金設定したアカウントでないと、Mapの表示すら制限されるようになりました。ですが、それはGoogle Map側の話。他には影響がないものと思っていました。ところが今回、別の記事でGoogle Chartを取り上げた際にGeocoding(色塗りマップ)を使った場合にGoogle Mapの課金制限が適用されることに気づきました。
これがその証拠スクショ。
目次
1.前書き
2.Google Maps Platformの課金
3.API KEY取得までの試行錯誤
4.Google Cloud Platform上からプロジェクトを作成する
5.Google Cloud Platform上に作ったプロジェクトをGoogle Maps Platformから選ぶ
2.Google Maps Platformの課金
さて、これをどうやればよいか調べます。ここでエラーメッセージが主張しているのは
「Geocoding Serviceからのお達し:Google Maps Platform APIsへのリクエストごとにAPI KEYを使わねばならない」という断固たる姿勢。これはいかんとGoogle Maps Platformを調べてみました。APIの料金を調べたところ、月間40000リクエストまでなら無料枠に含まれるとのこと。価格表
3.API KEY取得までの試行錯誤
ならAPI KEYを取ろう、と思って調べたところ、こちらのサイトが見つかりました。ねんでぶろぐさんのエントリー「【2018年7月16日版】Google Maps の APIキー を取得する」です。ありがとうございます。
ところが書かれている通りにやってみたところ、2018/12/8の段階ではうまくいかないことがわかりました。以下に失敗したところまでを追っかけてみます。
まず、https://cloud.google.com/maps-platformにアクセスします。そして左下の「使ってみる」ボタンを押してみました。
このようなポップアップが出るので、Mapsだけにチェックを入れ、右下の「CONTINUE」ボタンを押します。
すると、このような画面が出るので、「Select or create project」の右側にある下向きの▼を押します。
するとこのような画面が出ました。今回は新たなプロジェクトをこしらえるのがよいと思ったので、「+ Create a new project」のメニューをクリックしました。
こういう名前のプロジェクトでよいか、と思ったのですよ。
するとこのようなエラーメッセージが。はて? 「project_id」なんて項目はどこにもなかったぞよ?
ひょっとすると、この画面でさっきはMapsだけにしかチェックを入れていなかったのがよくなかったのかな?と思って全部にチェックをいれ、「CONTINUE」ボタンを押したのですが・・・やはり同じエラーに阻まれます。これはねんでぶろぐさんのページには出てこなかった。
4.Google Cloud Platform上からプロジェクトを作成する
そこで考えてみました。先ほどの画面で出てきたprojectの一覧は、以前に私が作成した別のprojectの名称。ということは、それらと同じ方法でprojectを作成し、そこからこの画面を通してMaps APIに登録すればよいのではないか? と。結論からいうと当たりでした。
まず、私のGoogle Cloud Platformのダッシュボードを表示させます。そして上部の違うprojectの横にある下の▼を押します。下図の一番上にある「slack-python-kintone」の右横の▼です。
すると、下図のような画面が出たので、右上の「新しいプロジェクト」メニューをクリックします。
すると下図のようなポップアップに切り替わります。プロジェクト名をこのように決めて打ち込んでみました。
プロジェクトが出来上がったので、先ほどのプロジェクトの一覧にkintone-google-chartというプロジェクトができています。それをクリックしてください。
するとプロジェクトのダッシュボードが開きます。左上のメニューボタンからメニューバーの「APIとサービス」を選ぶと、右側にサブメニューが出ます。ここで認証情報を選び、本来ならkintone-google-chartのプロジェクトが使用できるGoogle Cloud PlatformのAPIや、認証するための条件を選ぶ必要があります。ところが、ここでいくらMaps APIなどを対象APIに設定しても認証が通りません。全パケット許可にすることなどとても考えられません。なぜならここで認証のためのAPIの候補を適用させようにも、そもそもGeocodingが出てきません。
5.Google Cloud Platform上に作ったプロジェクトをGoogle Maps Platformから選ぶ
そこでもう一度よく考えてみました。そう、迷ったら原点に戻れ、です。本稿の最初でまず、https://cloud.google.com/maps-platformにアクセスしたと思います。
そこでは、Create a new projectを選んでいました。
今は違います。すでにあらたにkintone-google-chartを作っています。また、よく調べてみると、下図のように対象となるプロダクトの種類「Maps」「Routes」「Places」のうち、今回の記事ではGeocodingだけが必要のようですから、三つともチェックを入れる必要はありません。なので「Places」のみにチェックを入れます。
続いての画面ではCreate a new projectではなく、すでに作っておいた「kintone-google-chart」を選択すればよいです。
すると、今度は先ほどのようなproject_idがないというエラーに妨害されず、先に進みました。
余談ですが、おそらくここはGoogleのバグだと思いますので、ゆくゆくはねんでぶろぐさんの紹介された方法でもうまくいくはずだと思います。
ここでようやく、API KEYが取得できます。先ほど「kintone-google-chart」の作成時にもダッシュボードの画面から認証情報のメニューに飛ぶこともできます。そこでも実はAPI KEYは取得できるのですが、そのAPI KEYでは認証が有効になっていない(Geocoding APIのほか8個のAPIが有効になっていない)ので、意図した動きをしてくれません。
今度こそこのAPI KEYを使う時が来たのです。これでGeocodingを呼び出した時にもエラーなく動くことでしょう。
本稿はこれで終わりです。