از OAuth استفاده کنید

Routes API از OAuth 2.0 برای احراز هویت پشتیبانی می کند. Google از سناریوهای معمول OAuth 2.0 مانند موارد مربوط به سرور وب پشتیبانی می کند.

این سند نحوه ارسال یک نشانه OAuth را به فراخوانی Routes API در محیط توسعه خود توضیح می دهد. برای دستورالعمل‌های استفاده از OAuth در محیط تولید ، به احراز هویت در Google مراجعه کنید.

قبل از شروع

قبل از شروع استفاده از Routes API، به پروژه ای با حساب صورتحساب و فعال بودن Routes API نیاز دارید. توصیه می‌کنیم چندین مالک پروژه و مدیر صورت‌حساب ایجاد کنید تا همیشه فردی با این نقش‌ها در اختیار تیمتان باشد. برای کسب اطلاعات بیشتر، به راه‌اندازی در Cloud Console مراجعه کنید.

درباره OAuth

راه های زیادی برای ایجاد و مدیریت توکن های دسترسی با OAuth بر اساس محیط استقرار شما وجود دارد.

به عنوان مثال، سیستم Google OAuth 2.0 از تعاملات سرور به سرور پشتیبانی می کند، مانند تعاملات بین برنامه شما و سرویس Google. برای این سناریو شما به یک حساب سرویس نیاز دارید، که یک حساب کاربری است که به برنامه شما تعلق دارد به جای یک کاربر نهایی. برنامه شما از طرف حساب سرویس با Google API تماس می گیرد، بنابراین کاربران مستقیماً درگیر نمی شوند. برای اطلاعات بیشتر در مورد روش‌های احراز هویت، به احراز هویت در Google مراجعه کنید.

از طرف دیگر، ممکن است از Routes API به عنوان بخشی از یک برنامه تلفن همراه Android یا iOS استفاده کنید. برای اطلاعات کلی در مورد استفاده از OAuth با Routes API، از جمله اطلاعات مربوط به مدیریت نشانه‌های دسترسی برای محیط‌های مختلف استقرار، به استفاده از OAuth 2.0 برای دسترسی به Google API مراجعه کنید.

درباره دامنه های OAuth

برای استفاده از OAuth با Routes API، به نشانه OAuth باید محدوده تخصیص داده شود:

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

مثال: تماس‌های REST API را در محیط توسعه محلی خود امتحان کنید

اگر می‌خواهید Routes API را با استفاده از یک نشانه OAuth امتحان کنید، اما تنظیمات محیطی برای تولید نشانه‌ها ندارید، می‌توانید از رویه موجود در این بخش برای برقراری تماس استفاده کنید.

این مثال نحوه استفاده از نشانه OAuth ارائه شده توسط Application Default Credentials (ADC) را برای برقراری تماس توضیح می دهد. برای اطلاعات در مورد استفاده از ADC برای فراخوانی Google API با استفاده از کتابخانه‌های سرویس گیرنده، به تأیید اعتبار با استفاده از کتابخانه‌های سرویس گیرنده مراجعه کنید.

پیش نیازها

قبل از اینکه بتوانید با استفاده از ADC درخواست REST ارائه دهید، از Google Cloud CLI برای ارائه اعتبار به 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.

  • شناسه یا نام پروژه Google Cloud خود را که صورتحساب آن فعال شده است را در سربرگ X-Goog-User-Project ارسال کنید. برای کسب اطلاعات بیشتر، به راه‌اندازی در Cloud Console مراجعه کنید.

مثال زیر با استفاده از یک نشانه OAuth با Routes API تماس می گیرد:

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" \
"https://routes.googleapis.com/directions/v2:computeRoutes"

عیب یابی

اگر درخواست شما پیام خطایی در مورد عدم پشتیبانی اعتبارنامه کاربر نهایی توسط این API برمی‌گرداند، اعتبارنامه کاربر کار نمی‌کند را ببینید.