استخدام OAuth

تدعم Route Optimization API استخدام OAuth 2.0 للمصادقة. تتيح Google استخدام سيناريوهات OAuth 2.0 الشائعة، مثل سيناريوهات خادم الويب.

يشرح هذا المستند طريقة تمرير رمز OAuth مميز إلى طلب Route Optimization API في بيئة التطوير. للحصول على تعليمات حول استخدام OAuth في بيئة الإنتاج، يمكنك الاطّلاع على المصادقة في Google.

قبل البدء

قبل البدء في استخدام Route Optimization API، عليك إنشاء مشروع يتضمّن حساب فوترة وتفعيل Route Optimization API. نقترح إنشاء عدة مالكي مشروعات ومشرفي الفوترة، بحيث يكون لديك دائمًا شخص لديه هذه الأدوار متاحة لفريقك. لمزيد من المعلومات، يُرجى الاطّلاع على الإعداد في Cloud Console.

لمحة عن بروتوكول OAuth

هناك العديد من الطرق لإنشاء رموز الدخول وإدارتها باستخدام بروتوكول OAuth استنادًا إلى بيئة النشر.

على سبيل المثال، يدعم نظام Google OAuth 2.0 التفاعلات من خادم إلى خادم، مثل تلك التفاعلات بين التطبيق وخدمة Google. بالنسبة إلى هذا السيناريو، أنت بحاجة إلى حساب خدمة، وهو حساب ينتمي إلى تطبيقك بدلاً من حساب مستخدم نهائي فردي. يستدعي تطبيقك واجهات برمجة التطبيقات Google APIs بالنيابة عن حساب الخدمة، لذا لا يشارك المستخدمون بشكل مباشر في ذلك. لمزيد من المعلومات حول طرق المصادقة، راجِع المصادقة في Google.

وبدلاً من ذلك، يمكنك استخدام Route Optimization API كجزء من أحد تطبيقات الأجهزة الجوّالة التي تعمل بنظام التشغيل Android أو iOS. للحصول على معلومات عامة عن استخدام OAuth مع Route Optimization API، بما في ذلك معلومات عن إدارة رموز الدخول لبيئات النشر المختلفة، راجِع استخدام OAuth 2.0 للوصول إلى Google APIs.

لمحة عن نطاقات OAuth

لاستخدام OAuth مع واجهة برمجة تطبيقات Route Optimization API، يجب تحديد النطاق لرمز OAuth المميّز:

  • https://www.googleapis.com/auth/cloud-platform

مثال: تجربة طلبات البيانات من واجهة برمجة التطبيقات REST في بيئة التطوير المحلية

إذا كنت ترغب في تجربة واجهة برمجة تطبيقات Route Optimization API باستخدام رمز OAuth مميز، ولكن ليس لديك بيئة يتم إعدادها لإنشاء الرموز المميّزة، يمكنك استخدام الإجراء الوارد في هذا القسم لإجراء الطلب.

يوضِّح هذا المثال كيفية استخدام رمز OAuth المميز المقدَّم من بيانات الاعتماد التلقائية للتطبيق (ADC) لإجراء الطلب. وللحصول على معلومات عن استخدام ADC لطلب بيانات Google APIs باستخدام مكتبات العملاء، يُرجى الاطّلاع على المقالة المصادقة باستخدام مكتبات العملاء.

المتطلبات الأساسية

قبل أن تتمكّن من تقديم طلب REST باستخدام ADC، استخدِم واجهة سطر الأوامر في Google Cloud لتقديم بيانات الاعتماد إلى ADC:

  1. أنشئ مشروعًا وفعِّل الفوترة، إذا لم يسبق لك ذلك، من خلال اتّباع الخطوات الواردة في الإعداد في Google Cloud Console.
  2. تثبيت gcloud CLI وإعداده
  3. شغِّل أمر gcloud التالي على جهازك المحلي لإنشاء ملف بيانات الاعتماد:

    gcloud auth application-default login
  4. ستظهر لك شاشة لتسجيل الدخول. بعد تسجيل الدخول، يتم تخزين بيانات الاعتماد في ملف بيانات الاعتماد المحلي الذي يستخدمه ADC.

لمزيد من المعلومات، يُرجى الاطّلاع على قسم بيئة التطوير المحلي في مستندات توفير بيانات الاعتماد الخاصة ببيانات الاعتماد التلقائية للتطبيق.

تقديم طلب REST

في هذا المثال، تمرر عنواني طلب:

  • أدخِل رمز OAuth المميز في عنوان Authorization باستخدام الأمر التالي لإنشاء الرمز:

    gcloud auth application-default print-access-token

    يشمل الرمز المميّز المعروض نطاق https://www.googleapis.com/auth/cloud-platform..

  • حدِّد أن نوع محتوى نص الطلب هو application/json.

في المثال التالي، يتم الاتصال بـ Route Optimization API باستخدام رمز OAuth المميز:

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

تحديد المشاكل وحلّها

إذا عرض طلبك رسالة خطأ تفيد بأنّ بيانات اعتماد المستخدم غير متوافقة مع واجهة برمجة التطبيقات هذه، راجِع بيانات اعتماد المستخدم لا تعمل.