OAuth

注: このドキュメントでは、他者のデータへのアクセスをリクエストするために使用される 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 の承認プロセス、つまり「フロー」の詳細は、開発するアプリケーションの種類によって多少異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。

  1. アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。登録すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
  2. Google API Console で Google Content API for Shopping を有効にします。(Indexing API が API Console に表示されない場合は、この手順をスキップしてください)。
  3. アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
  4. データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
  5. ユーザーが承認すると、Google はアプリケーションに有効期間が短いアクセス トークンを付与します。
  6. アプリケーションはリクエストにそのアクセス トークンを付けて、ユーザーデータをリクエストします。
  7. 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);