注: このドキュメントでは、他者のデータへのアクセスをリクエストするために使用される 3-legged OAuth2 フローについて説明します。クライアントの Merchant Center アカウントにアクセスする必要があるサードパーティ アプリケーションを開発している場合は、この認証フローを使用します。ご自身の Merchant Center アカウントだけにアクセスする社内アプリケーションを開発している場合は、サービス アカウントのガイドをご覧ください。
アプリケーションから Google Content API for Shopping に送信するすべてのリクエストには、認証トークンを含める必要があります。このトークンは Google に対してアプリケーションの識別も行います。
承認プロトコルについて
アプリケーションは OAuth 2.0 を使用してリクエストを承認する必要があります。これ以外の認証プロトコルには対応していません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 によるリクエストの承認
Google Content API for Shopping へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって多少異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。登録すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API Console で Google Content API for Shopping を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
- アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
- Google によりリクエストとトークンが有効であると判断されると、リクエストしたデータが返されます。
新しいアクセス トークンを取得するためにリフレッシュ トークンを使用するなど、承認フローには追加のステップがあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
Google Content API for Shopping で使用される OAuth 2.0 のスコープ情報は次のとおりです。
範囲 | 意味 |
---|---|
https://www.googleapis.com/auth/content |
読み取り / 書き込みアクセス。 |
OAuth 2.0 を使用してアクセスをリクエストするには、アプリケーションの登録時に Google より提供された情報(クライアント ID やクライアント シークレットなど)の他に、このスコープの情報が必要です。
ヒント: Google API クライアント ライブラリによって、承認プロセスの一部が処理されることがあります。さまざまなプログラミング言語で利用できます。詳細についてはライブラリとサンプルのページをご覧ください。
OAuth スコープを取得する
範囲選択の問題を回避するために、増分承認を使用することをおすすめします。
複数の OAuth スコープをリクエストする場合、アプリの同意画面で OAuth スコープがデフォルトで選択されることはありません。アプリが同意画面をユーザーに示す場合は、ユーザーが各スコープを手動で選択し、アクセスを承認する必要があります。
OAuth リクエストからのレスポンスをチェックして、適切なスコープを受信したことを確認します。
詳細については、OAuth 2.0 ポリシーのページをご覧ください。
アプリの確認をリクエストする
Content API を使用するアプリはすべて、OAuth による確認プロセスを受ける必要があります。未確認のアプリで Content API を使用すると、警告が表示され、アプリの機能が制限されます。 この場合のアプリは、Google Cloud 内で一意の OAuth 2.0 クライアント ID として定義されます。
通常、確認プロセスには 3 ~ 5 営業日ほどかかります。プロセスの詳細と、確認リクエストの送信方法については、アプリの確認をご覧ください。
このポリシーはすべてのアプリに適用されます。すべてのビジネスに支障が生じることのないよう、できるだけ早く Google OAuth 検証プロセスを実施することをおすすめします。
認可の例
次のコードは、ウェブ アプリケーション用の OAuth 2.0 を使用してクライアントを構成し、リクエストを承認する方法を示しています。その他の言語については、サンプルとライブラリのページをご覧ください。
PHP
この例では、ウェブ アプリケーション フローを使用します。リダイレクト URI は、この PHP ページの URI にしてください。
<?php require_once 'Google/Client.php'; session_start(); $client = new Google_Client(); $client->setApplicationName('Sample Content API application'); $client->setClientId('YOUR_CLIENT_ID'); $client->setClientSecret('YOUR_CLIENT_SECRET'); $client->setRedirectUri('YOUR_REDIRECT_URI'); $client->setScopes('https://www.googleapis.com/auth/content'); if (isset($_SESSION['oauth_access_token'])) { $client->setAccessToken($_SESSION['oauth_access_token']); } elseif (isset($_GET['code'])) { $token = $client->authenticate($_GET['code']); $_SESSION['oauth_access_token'] = $token; } else { header('Location: ' . $client->createAuthUrl()); exit; }
認証が完了したので、API リクエストを行う Service オブジェクトを作成できます。
require_once 'Google/Service/ShoppingContent.php'; $service = new Google_Service_ShoppingContent($client);