Places Insights API は、認証に OAuth 2.0 の使用をサポートしています。Google は、ウェブサーバーなど、OAuth 2.0 の一般的なシナリオに対応しています。
このドキュメントでは、開発環境で Places Insights API 呼び出しに OAuth トークンを渡す方法について説明します。本番環境で OAuth を使用する手順については、Google での認証をご覧ください。
始める前に
Places Insights API を使用するには、請求先アカウントが登録されたプロジェクトを用意し、Places Insights API を有効にする必要があります。複数のプロジェクト オーナーと課金管理者を作成し、これらの役割をチーム内の誰かが必ず担えるようにすることをおすすめします。詳しくは、Google Cloud Console でセットアップするをご覧ください。
OAuth について
デプロイ環境に応じて、OAuth でアクセス トークンを作成して管理する方法はいくつかあります。
たとえば、Google OAuth 2.0 システムは、アプリケーションと Google サービス間のサーバー間インタラクションをサポートしています。このシナリオでは、サービス アカウントが必要です。これは、個々のエンドユーザーではなく、アプリケーションに属するアカウントです。サービス アカウントの代わりにアプリケーションによって Google API が呼び出されるため、ユーザーが直接関与することはありません。認証方法の詳細については、Google での認証をご覧ください。
また、Android または iOS モバイルアプリの一部として Places Insights API を使用することもできます。さまざまなデプロイ環境のアクセス トークンの管理など、Places Insights API での OAuth の使用に関する一般的な情報については、OAuth 2.0 を使用した Google API へのアクセスをご覧ください。
OAuth スコープについて
Places Insights API で OAuth を使用するには、OAuth トークンに次のスコープを割り当てる必要があります。
https://www.googleapis.com/auth/cloud-platform
例: ローカル開発環境で REST API 呼び出しを試す
OAuth トークンを使用して Places Insights API を試したいが、トークンを生成する環境が設定されていない場合は、このセクションの手順に沿って呼び出しを行うことができます。
この例では、アプリケーションのデフォルト認証情報(ADC)から提供される OAuth トークンを使用して呼び出しを行う方法について説明します。ADC を使用してクライアント ライブラリから Google API を呼び出す方法については、クライアント ライブラリを使用した認証をご覧ください。
前提条件
ADC を使用して REST リクエストを行う前に、Google Cloud CLI を使用して ADC に認証情報を提供します。
- まだ作成していない場合は、Google Cloud コンソールでの設定の手順に沿ってプロジェクトを作成し、課金を有効にします。
- gcloud CLI をインストールして初期化します。
ローカルマシンで次の
gcloud
コマンドを実行して、認証情報ファイルを作成します。gcloud auth application-default login
- ログイン画面が表示されます。ログインすると、ADC で使用されるローカル認証情報ファイルに認証情報が保存されます。
詳細については、アプリケーションのデフォルト認証情報の認証情報を提供するドキュメントのローカル開発環境セクションをご覧ください。
REST リクエストを送信する
この例では、2 つのリクエスト ヘッダーを渡します。
次のコマンドを使用してトークンを生成し、
Authorization
ヘッダーで OAuth トークンを渡します。gcloud auth application-default print-access-token
返されたトークンのスコープが
https://www.googleapis.com/auth/cloud-platform.
である- 課金が有効になっている Google Cloud プロジェクトの ID または名前を
X-Goog-User-Project
ヘッダーに渡します。詳細については、Cloud コンソールでのセットアップをご覧ください。
次の例では、OAuth トークンを使用して Places Insights API を呼び出します。
curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ --data '{ "insights":[ "INSIGHT_COUNT" ], "filter":{ "location_filter":{ "region":{ "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo" } }, "type_filter":{ "included_types":[ "restaurant" ] }, "price_levels":[ "PRICE_LEVEL_INEXPENSIVE" ] } }'
トラブルシューティング
リクエストから、この API でサポートされていないエンドユーザー認証情報に関するエラー メッセージが返された場合は、ユーザー認証情報が機能しないをご覧ください。