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 أيام عمل. لمزيد من المعلومات حول بشأن العملية ولإرسال طلب لإثبات الملكية، يمكنك الاطّلاع على مقالة التحقق من ملكية التطبيقات.

تسري هذه السياسة على جميع التطبيقات، وننصح بأن تخضع جميع التطبيقات لبروتوكول 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;
}

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

require_once 'Google/Service/ShoppingContent.php';

$service = new Google_Service_ShoppingContent($client);