OAuth

หมายเหตุ: เอกสารนี้อธิบายขั้นตอน OAuth2 แบบ 3 ทางที่ใช้ส่งคําขอเข้าถึงข้อมูลของผู้อื่น ใช้ขั้นตอนการตรวจสอบสิทธิ์นี้หากคุณพัฒนาแอปพลิเคชันของบุคคลที่สามที่ต้องการเข้าถึงบัญชี 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 จะให้ข้อมูลที่คุณต้องใช้ในภายหลัง เช่น รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์
  2. เปิดใช้งาน Google Content API for Shopping ในคอนโซล Google API (หากไม่เห็น API ดังกล่าวในคอนโซล API ให้ข้ามขั้นตอนนี้ไป)
  3. เมื่อแอปพลิเคชันต้องการเข้าถึงข้อมูลผู้ใช้ แอปจะขอขอบเขตการเข้าถึงที่จำเป็นจาก Google
  4. Google จะแสดงหน้าจอขอคำยินยอมแก่ผู้ใช้เพื่อขอให้ผู้ใช้ให้สิทธิ์แอปพลิเคชันของคุณในการขอข้อมูลบางอย่างของผู้ใช้
  5. หากผู้ใช้อนุมัติ Google จะให้โทเค็นเพื่อการเข้าถึงที่มีอายุชั่วคราวแก่แอปพลิเคชันของคุณ
  6. แอปพลิเคชันขอข้อมูลผู้ใช้โดยแนบโทเค็นเพื่อการเข้าถึงไปกับคำขอ
  7. หาก Google ตัดสินว่าคำขอและโทเค็นของคุณถูกต้อง ระบบจะแสดงข้อมูลที่ขอ

บางกระบวนการจะมีขั้นตอนเพิ่มเติม เช่น การใช้โทเค็นการรีเฟรชเพื่อขอโทเค็นเพื่อการเข้าถึงใหม่ ดูข้อมูลอย่างละเอียดเกี่ยวกับกระบวนการของแอปพลิเคชันประเภทต่างๆ ได้ที่เอกสารประกอบเกี่ยวกับ OAuth 2.0 ของ Google

ข้อมูลขอบเขต OAuth 2.0 สําหรับ Google Content API for Shopping มีดังนี้

ขอบเขต ความหมาย
https://www.googleapis.com/auth/content สิทธิ์การอ่าน/เขียน

หากต้องการขอสิทธิ์โดยใช้ OAuth 2.0 แอปพลิเคชันของคุณต้องมีข้อมูลขอบเขต รวมถึงข้อมูลที่ Google ให้คุณตอนลงทะเบียนแอปพลิเคชัน (เช่น รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์)

เคล็ดลับ: ไลบรารีของไคลเอ็นต์ Google APIs จัดการขั้นตอนการให้สิทธิ์บางส่วนให้คุณได้ ไลบรารีเหล่านี้พร้อมให้บริการเป็นภาษาโปรแกรมต่างๆ โปรดดูรายละเอียดเพิ่มเติมที่หน้าที่มีไลบรารีและตัวอย่าง

ดูขอบเขต OAuth

เราขอแนะนําให้ใช้การให้สิทธิ์เพิ่มขึ้นเพื่อหลีกเลี่ยงปัญหาการเลือกขอบเขต

ระบบจะยกเลิกการเลือกขอบเขต OAuth โดยค่าเริ่มต้นในหน้าจอความยินยอมสําหรับแอป หากคุณขอขอบเขตมากกว่า 1 ขอบเขต เมื่อแอปแสดงหน้าจอขอความยินยอมต่อผู้ใช้ ผู้ใช้ต้องเลือกขอบเขตแต่ละรายการด้วยตนเองเพื่อให้สิทธิ์เข้าถึง

ตรวจสอบการตอบกลับจากคําขอ OAuth เพื่อยืนยันว่าคุณได้รับขอบเขตที่เหมาะสมแล้ว

ดูรายละเอียดเพิ่มเติมได้ที่หน้านโยบาย OAuth 2.0

ขอรับการยืนยันแอป

แอปที่เข้าถึง Content API จะต้องผ่านกระบวนการตรวจสอบการยืนยัน OAuth ผู้ใช้แอปที่ยังไม่ได้รับการยืนยันที่เข้าถึง Content API จะได้รับคําเตือน และแอปจะมีฟังก์ชันการทํางานที่จํากัด แอปในบริบทนี้หมายถึงรหัสไคลเอ็นต์ OAuth 2.0 ที่ไม่ซ้ํากันใน Google Cloud

โดยปกติแล้ว ขั้นตอนการยืนยันจะใช้เวลา 3-5 วันทําการ ดูข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการและส่งคําขอการยืนยันได้ที่การยืนยันสําหรับแอป

นโยบายนี้มีผลกับแอปทั้งหมด และเราขอแนะนําให้แอปทั้งหมดผ่านกระบวนการตรวจสอบของ Google OAuth อย่างเร็วที่สุดเพื่อหลีกเลี่ยงการหยุดชะงักของธุรกิจ

ตัวอย่างการให้สิทธิ์

โค้ดต่อไปนี้สาธิตวิธีการกําหนดค่าไคลเอ็นต์และให้สิทธิ์คําขอโดยใช้ OAuth 2.0 สําหรับเว็บแอปพลิเคชัน ภาษาอื่นๆ มีอยู่ในหน้าตัวอย่างและไลบรารี

PHP

ตัวอย่างนี้ใช้ขั้นตอนเว็บแอปพลิเคชัน URI การเปลี่ยนเส้นทางควรเป็น URI ของหน้า PHP นี้

<?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 ได้ด้วย

require_once 'Google/Service/ShoppingContent.php';

$service = new Google_Service_ShoppingContent($client);