OAuth

הערה: במסמך הזה מתוארת הזרימה של OAuth 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 Console. לאחר הרישום, 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 במסך ההסכמה של האפליקציה תבוטל. כשהאפליקציה מציגה למשתמש את מסך ההסכמה, הוא צריך לבחור באופן ידני כל היקף כדי להעניק גישה.

כדי לוודא שקיבלתם את ההיקפים המתאימים, עליכם לבדוק את התשובה מבקשת OAuth.

פרטים נוספים זמינים בדף מדיניות OAuth 2.0.

בקשה לאימות אפליקציה

כל אפליקציה שיש לה גישה ל-Content API חייבת לעבור תהליך של בדיקת אימות OAuth. משתמשים באפליקציות לא מאומתות שיש להן גישה ל-Content API יקבלו אזהרות, ולאפליקציות תהיה פונקציונליות מוגבלת. אפליקציה, בהקשר הזה, מוגדרת כ-Client ID ייחודי ב-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);