Route Optimization API از استفاده از OAuth 2.0 برای احراز هویت پشتیبانی می کند. Google از سناریوهای معمول OAuth 2.0 مانند موارد مربوط به سرور وب پشتیبانی می کند.
این سند نحوه ارسال توکن OAuth را به فراخوانی Route Optimization API در محیط توسعه خود توضیح می دهد. برای دستورالعملهای استفاده از OAuth در محیط تولید ، به احراز هویت در Google مراجعه کنید.
قبل از شروع
قبل از شروع استفاده از Route Optimization API، به پروژه ای با حساب صورتحساب و فعال API بهینه سازی مسیر نیاز دارید. توصیه میکنیم چندین مالک پروژه و مدیر صورتحساب ایجاد کنید تا همیشه فردی با این نقشها در اختیار تیمتان باشد. برای کسب اطلاعات بیشتر، به راهاندازی در Cloud Console مراجعه کنید.
درباره OAuth
راه های زیادی برای ایجاد و مدیریت توکن های دسترسی با OAuth بر اساس محیط استقرار شما وجود دارد.
به عنوان مثال، سیستم Google OAuth 2.0 از تعاملات سرور به سرور پشتیبانی می کند، مانند تعاملات بین برنامه شما و سرویس Google. برای این سناریو شما به یک حساب سرویس نیاز دارید، که یک حساب کاربری است که به برنامه شما تعلق دارد به جای یک کاربر نهایی. برنامه شما از طرف حساب سرویس با Google API تماس می گیرد، بنابراین کاربران مستقیماً درگیر نمی شوند. برای اطلاعات بیشتر در مورد روشهای احراز هویت، به احراز هویت در Google مراجعه کنید.
از طرف دیگر، ممکن است از Route Optimization API به عنوان بخشی از یک برنامه تلفن همراه Android یا iOS استفاده کنید. برای اطلاعات کلی در مورد استفاده از OAuth با Route Optimization API، از جمله اطلاعات مربوط به مدیریت نشانههای دسترسی برای محیطهای استقرار مختلف، به استفاده از OAuth 2.0 برای دسترسی به Google API مراجعه کنید.
درباره دامنه های OAuth
برای استفاده از OAuth با Route Optimization API، به نشانه OAuth باید محدوده تخصیص داده شود:
-
https://www.googleapis.com/auth/cloud-platform
مثال: تماسهای REST API را در محیط توسعه محلی خود امتحان کنید
اگر میخواهید Route Optimization API را با استفاده از یک نشانه OAuth امتحان کنید، اما تنظیمات محیطی برای تولید نشانهها ندارید، میتوانید از رویه موجود در این بخش برای برقراری تماس استفاده کنید.
این مثال نحوه استفاده از نشانه OAuth ارائه شده توسط Application Default Credentials (ADC) را برای برقراری تماس توضیح می دهد. برای اطلاعات در مورد استفاده از ADC برای فراخوانی Google API با استفاده از کتابخانههای سرویس گیرنده، به تأیید اعتبار با استفاده از کتابخانههای سرویس گیرنده مراجعه کنید.
پیش نیازها
قبل از اینکه بتوانید با استفاده از ADC درخواست REST ارائه دهید، از Google Cloud CLI برای ارائه اعتبار به ADC استفاده کنید:
- اگر قبلاً این کار را نکردهاید، یک پروژه ایجاد کنید و با دنبال کردن مراحل راهاندازی در Google Cloud Console، صورتحساب را فعال کنید.
- gcloud CLI را نصب و مقداردهی اولیه کنید .
دستور
gcloud
زیر را در دستگاه محلی خود اجرا کنید تا فایل اعتبار خود را ایجاد کنید:gcloud auth application-default login
- یک صفحه ورود به سیستم نمایش داده می شود. پس از ورود به سیستم، اطلاعات کاربری شما در فایل اعتبار محلی مورد استفاده توسط ADC ذخیره می شود.
برای اطلاعات بیشتر، به بخش محیط توسعه محلی در ارائه اعتبارنامه برای اسناد اعتبارنامه پیش فرض برنامه مراجعه کنید.
درخواست REST کنید
در این مثال، شما دو هدر درخواست را ارسال می کنید:
توکن OAuth را در سربرگ
Authorization
با استفاده از دستور زیر برای تولید توکن ارسال کنید:gcloud auth application-default print-access-token
توکن برگشتی دارای محدوده
https://www.googleapis.com/auth/cloud-platform.
- نوع محتوای بدن درخواست
application/json
را مشخص کنید.
مثال زیر با استفاده از یک نشانه OAuth با Route Optimization API تماس می گیرد:
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
عیب یابی
اگر درخواست شما پیام خطایی در مورد عدم پشتیبانی اعتبارنامه کاربر نهایی توسط این API برمیگرداند، اعتبارنامه کاربر کار نمیکند را ببینید.