すべてのローカル サービス API の呼び出しは、OAuth 2.0 による認証を受ける必要があります。これにより、ローカル サービス API クライアント アプリは、ユーザーのログイン情報を処理したり保存したりしなくても、ユーザーのローカル サービス広告アカウントにアクセスできるようになります。
Local Services API は、OAuth 2.0 プロトコルを使用してユーザーを認証します。OAuth 2.0 の詳細については、OAuth 2.0 を使用した Google API へのアクセスをご覧ください。
ローカル サービス API 用に Google API Console プロジェクトを設定する
Google 広告ユーザーを認証して承認するには、Google の OAuth 2.0 サーバーにアクセスするための認証情報が必要です。これらの認証情報によりアプリケーションが識別され、Google 広告のユーザーを管理するための OAuth トークンが生成されます。Google API Console を使用して、Google OAuth 2.0 認証情報へのアクセスを管理します。
これらの認証情報を受け取るには、次の操作を行います。
プロジェクトを作成します。これを行うには、Google API Console に移動します。[プロジェクトを作成] をクリックし、名前を入力して、[作成] をクリックします。
プロジェクトで Local Services API を有効にします。
Google API Console で API ライブラリを開きます。プロンプトが表示されたら、プロジェクトのいずれかを選択するか、新しいプロジェクトを作成します。API ライブラリには、利用可能なすべての API がプロダクト ファミリーと人気度に応じて分類されて表示されます。
ローカル サービス API がリストに表示されない場合は、検索ボックスを使用して検索します。
Local Services API を選択し、[有効にする] をクリックします。
アプリの種類を選択します。Local Services API では、Google Ads API と同じアプリタイプが使用されます。使用するアプリの種類の詳細については、アプリの種類を選択するをご覧ください。
クライアント ID とクライアント シークレットを作成します。ローカル サービス API の場合は、Google Ads API で使用したのと同じ手順でクライアント ID とクライアント シークレットを作成します。手順はどちらのユースケースでも同じです。
クライアント ライブラリを使用して OAuth 2.0 トークンを取得する
OAuth 2.0 認証リクエストの作成に使用できるクライアント ライブラリのリストについては、クライアント ライブラリをご覧ください。ライブラリ固有の手順に沿って、更新トークンを使用して新しいアクセス トークンを取得する方法を確認してください。
OAuth 2.0 更新トークンを取得する方法
本番環境でユーザーを認証するには、クライアント ライブラリを使用することをおすすめします。テスト目的で HTTP クライアントを使用する場合は、次の手順に沿って OAuth 2.0 更新トークンとアクセス トークンを取得します。ステップ 1、2、3 は手動で実行する必要がある 1 回限りの設定手順です。ステップ 4 と 5 は、cron ジョブなどの人間の介入なしで実行するように自動化できます。
HTTP ウェブ リクエストを行うコマンドライン ツールである curl をダウンロードしてインストールします。
OAuth Playground ページの手順に沿って、OAuth 2.0 更新トークンを取得します。Local Services API には次のスコープを使用します。
https://www.googleapis.com/auth/adwords
これは、Google Ads API で使用される OAuth 2.0 スコープと同じです。
このステップの最後に、更新トークンとアクセス トークンの 2 つのトークンが返されます。両方とも保存します。
コマンド プロンプトで次のコマンドを実行して、前の手順が成功したことを確認します。
curl https://oauth2.googleapis.com/tokeninfo?access_token=<INSERT_ACCESS_TOKEN>
コマンド出力に次のようなメッセージが表示された場合、コマンドは成功しています。
{ "azp": "************-********************************.apps.googleusercontent.com", "aud": "************-********************************.apps.googleusercontent.com", "scope": "https://www.googleapis.com/auth/adwords [googleapis.com]", "exp": "1611183382", "expires_in": "3482", "access_type": "offline" }
エラーが発生した場合や、スコープが正しくない場合は、トークンを再度生成してみてください。
手動操作なしで新しいアクセス トークンを生成します。アクセス トークンは 1 時間ごとに期限切れになるため、これは重要です。更新トークンは有効期限が長いため、不要になった場合は手動で取り消す必要があります。
新しいアクセス トークンを取得するには、次のコマンドを実行します。
curl --data "refresh_token=<INSERT_REFRESH_TOKEN>&client_id=<INSERT_CLIENT_ID>&client_secret=<INSERT_CLIENT_SECRET>&grant_type=refresh_token" -X POST "https://oauth2.googleapis.com/token”
次の API 呼び出しを実行します。
curl -H "Authorization: Bearer <INSERT_ACCESS_TOKEN>" https://localservices.googleapis.com/v1/accountReports:search?query=manager_customer_id:<INSERT_10_DIGIT_MANAGER_CUSTOMER_ID_WITHOUT_HYPHENS>
この呼び出しが成功すると、設定は完了です。