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 المعلومات التي ستحتاجها في ما بعد، مثل معرّف العميل وسر العميل.
  2. تنشيط Google Content API for Shopping في وحدة تحكم Google API. (يمكنك تخطّي هذه الخطوة إذا كانت واجهة برمجة التطبيقات غير مدرَجة في وحدة التحكم في واجهة Google 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 تحذيرات وستتوفّر وظائف محدودة للتطبيقات. في هذا السياق، يُعرَّف التطبيق بأنه رقم تعريف عميل OAuth 2.0 فريد في Google Cloud.

عادةً ما يستغرق اكتمال عملية التحقق من 3 إلى 5 أيام عمل. لمعرفة المزيد من المعلومات عن هذه العملية ولإرسال طلب إثبات الملكية، يُرجى الرجوع إلى إثبات ملكية التطبيقات.

تسري هذه السياسة على جميع التطبيقات، ونوصي بأن تخضع جميع التطبيقات لعملية التحقق من Google OAuth في أقرب وقت ممكن لتجنب أي انقطاع في النشاط التجاري.

مثال على التفويض

توضح الشفرة التالية كيفية تهيئة برنامجك وتفويض الطلبات باستخدام OAuth 2.0 لتطبيقات الويب. وتتوفر لغات أخرى في صفحة النماذج والمكتبات.

لغة PHP

يستخدم هذا المثال تدفق تطبيق الويب. يجب أن يكون عنوان URL لإعادة التوجيه هو عنوان 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;
}

الآن، وبعد المصادقة، يمكنك إنشاء كائن خدمة لإجراء طلبات واجهة برمجة التطبيقات باستخدامه.

require_once 'Google/Service/ShoppingContent.php';

$service = new Google_Service_ShoppingContent($client);