OAuth

注意:本文件將說明 用來要求其他方存取權的三足式 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 控制台註冊應用程式。接著 Google 會向您提供稍後需要的資訊,例如用戶端 ID 和用戶端密碼。
  2. 在 Google API 控制台中啟用 Google Content API for Shopping。(如果 API 控制台裡沒有列出該 API,則可略過這個步驟)。
  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 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;
}

通過驗證後,您就可以建立 Service 物件來提出 API 要求。

require_once 'Google/Service/ShoppingContent.php';

$service = new Google_Service_ShoppingContent($client);