1.前書き

Google Maps PlatformのAPIに課金が必要となる。そのニュースはずいぶん前から言われていました。そして2018年の夏、「Google Cloud Platform上で課金設定したアカウントでないと、Mapの表示すら制限されるようになりました。ですが、それはGoogle Map側の話。他には影響がないものと思っていました。ところが今回、別の記事でGoogle Chartを取り上げた際にGeocoding(色塗りマップ)を使った場合にGoogle Mapの課金制限が適用されることに気づきました。

これがその証拠スクショ。
Geocoding_error

目次

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にアクセスします。そして左下の「使ってみる」ボタンを押してみました。
google maps platform1

このようなポップアップが出るので、Mapsだけにチェックを入れ、右下の「CONTINUE」ボタンを押します。
google maps platform2

すると、このような画面が出るので、「Select or create project」の右側にある下向きの▼を押します。
google maps platform3

するとこのような画面が出ました。今回は新たなプロジェクトをこしらえるのがよいと思ったので、「+ Create a new project」のメニューをクリックしました。
google maps platform4

こういう名前のプロジェクトでよいか、と思ったのですよ。
google maps platform5

するとこのようなエラーメッセージが。はて? 「project_id」なんて項目はどこにもなかったぞよ?
google maps platform6

ひょっとすると、この画面でさっきはMapsだけにしかチェックを入れていなかったのがよくなかったのかな?と思って全部にチェックをいれ、「CONTINUE」ボタンを押したのですが・・・やはり同じエラーに阻まれます。これはねんでぶろぐさんのページには出てこなかった。
google maps platform7

4.Google Cloud Platform上からプロジェクトを作成する

そこで考えてみました。先ほどの画面で出てきたprojectの一覧は、以前に私が作成した別のprojectの名称。ということは、それらと同じ方法でprojectを作成し、そこからこの画面を通してMaps APIに登録すればよいのではないか? と。結論からいうと当たりでした。

まず、私のGoogle Cloud Platformのダッシュボードを表示させます。そして上部の違うprojectの横にある下の▼を押します。下図の一番上にある「slack-python-kintone」の右横の▼です。
google maps platform8

すると、下図のような画面が出たので、右上の「新しいプロジェクト」メニューをクリックします。
google maps platform9-1

すると下図のようなポップアップに切り替わります。プロジェクト名をこのように決めて打ち込んでみました。
google maps platform10-1

プロジェクトが出来上がったので、先ほどのプロジェクトの一覧にkintone-google-chartというプロジェクトができています。それをクリックしてください。
google maps platform11-1

するとプロジェクトのダッシュボードが開きます。左上のメニューボタンからメニューバーの「APIとサービス」を選ぶと、右側にサブメニューが出ます。ここで認証情報を選び、本来ならkintone-google-chartのプロジェクトが使用できるGoogle Cloud PlatformのAPIや、認証するための条件を選ぶ必要があります。ところが、ここでいくらMaps APIなどを対象APIに設定しても認証が通りません。全パケット許可にすることなどとても考えられません。なぜならここで認証のためのAPIの候補を適用させようにも、そもそもGeocodingが出てきません。
google maps platform12

5.Google Cloud Platform上に作ったプロジェクトをGoogle Maps Platformから選ぶ

そこでもう一度よく考えてみました。そう、迷ったら原点に戻れ、です。本稿の最初でまず、https://cloud.google.com/maps-platformにアクセスしたと思います。

そこでは、Create a new projectを選んでいました。
google maps platform4

今は違います。すでにあらたにkintone-google-chartを作っています。また、よく調べてみると、下図のように対象となるプロダクトの種類「Maps」「Routes」「Places」のうち、今回の記事ではGeocodingだけが必要のようですから、三つともチェックを入れる必要はありません。なので「Places」のみにチェックを入れます。
google maps platform22-5

続いての画面ではCreate a new projectではなく、すでに作っておいた「kintone-google-chart」を選択すればよいです。
google maps platform22-7

すると、今度は先ほどのようなproject_idがないというエラーに妨害されず、先に進みました。
余談ですが、おそらくここはGoogleのバグだと思いますので、ゆくゆくはねんでぶろぐさんの紹介された方法でもうまくいくはずだと思います。
google maps platform23

ここでようやく、API KEYが取得できます。先ほど「kintone-google-chart」の作成時にもダッシュボードの画面から認証情報のメニューに飛ぶこともできます。そこでも実はAPI KEYは取得できるのですが、そのAPI KEYでは認証が有効になっていない(Geocoding APIのほか8個のAPIが有効になっていない)ので、意図した動きをしてくれません。
google maps platform24-1

今度こそこのAPI KEYを使う時が来たのです。これでGeocodingを呼び出した時にもエラーなく動くことでしょう。

本稿はこれで終わりです。


One thought on “Google ChartのGeocodingにも課金設定は必要

  1. Pingback: ライフログのkintone盛り alasql仕込みのGoogle Chart添え | Case Of Akvabit

コメントを残して頂けると嬉しいです

Case Of Akvabitの全投稿一覧