הערה: במסמך הזה מתואר תהליך 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. לאחר הרישום, Google מספקת נתונים שיהיו דרושים לכם מאוחר יותר, כמו מזהה לקוח וסוד לקוח.
- מפעילים את Google Content API for Shopping במסוף Google API. (אם ה-API לא מופיע ב-API Console, דלגו על השלב הזה).
- כשהאפליקציה צריכה גישה לנתונים של משתמשים, היא מעבירה ל-Google בקשת גישה בהיקף ספציפי.
- Google מציגה למשתמש מסך הסכמה ומבקשת לאשר לאפליקציה לשלוח בקשה לחלק מהנתונים שלו.
- אם המשתמש מסכים, האפליקציה מקבלת מ-Google אסימון גישה לטווח קצר.
- האפליקציה מבקשת את נתוני המשתמש ומצרפת לבקשה את אסימון הגישה.
- אם 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
אנחנו ממליצים להשתמש ב-incremental כדי למנוע בעיות בבחירת היקף ההרשאות.
היקפי ההרשאות של OAuth לא מסומנת כברירת מחדל במסך ההסכמה של האפליקציה, אם מבקשים יותר מאישור אחד. כשהאפליקציה שלך מציג למשתמש את מסך ההסכמה, עליו לבחור ידנית כל היקף כדי לאשר גישה.
צריך לבדוק את התשובה לבקשת OAuth כדי לוודא שקיבלת את היקפי ההרשאות המתאימים.
מעבר לדף מדיניות OAuth 2.0 אפשר לקבל פרטים נוספים.
שליחת בקשה לאימות האפליקציה
כל האפליקציות שמקבלות גישה ל-Content API חייבות לעבור את תהליך הבדיקה של אימות OAuth. משתמשים של אפליקציות לא מאומתות שיש להן גישה ל-Content API יקבלו אזהרות, ולאפליקציות יהיו פונקציונליות מוגבלת. בהקשר הזה, אפליקציה מוגדרת ב-Google Cloud כמזהה לקוח ייחודי ב-OAuth 2.0.
בדרך כלל, תהליך האימות נמשך 3-5 ימי עסקים. מידע נוסף על על התהליך ולהגיש בקשה לאימות, כדאי לעיין במאמר אימות לאפליקציות.
המדיניות הזו חלה על כל האפליקציות, ואנחנו ממליצים שכל האפליקציות יעברו את פרוטוקול OAuth של Google את תהליך האימות בהקדם האפשרי, כדי למנוע שיבושים בעסק.
דוגמה להרשאה
הקוד הבא מדגים איך להגדיר את הלקוח ולאשר בקשות באמצעות 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);