שימוש ב-OAuth

API לאופטימיזציה של נתיב תומך בשימוש ב-OAuth 2.0 לאימות. Google תומכת בתרחישי OAuth 2.0 נפוצים, כמו תרחישים של שרת אינטרנט.

כאן מוסבר איך להעביר אסימון OAuth לקריאה ל-Route Optimization API בסביבת הפיתוח. להוראות על שימוש ב-OAuth בסביבת ייצור, קראו את המאמר אימות ב-Google.

לפני שמתחילים

לפני שמתחילים להשתמש ב-Route Optimization API, צריך להיות לכם פרויקט עם חשבון לחיוב שמופעל בו Route Optimization API. מומלץ ליצור כמה 'בעלי הפרויקט' ו'אדמינים לענייני חיוב', כדי שתמיד יהיה מישהו עם התפקידים האלה שזמינים לצוות. מידע נוסף זמין במאמר הגדרה במסוף Cloud.

מידע על 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 עם API לאופטימיזציה של מסלול, צריך להקצות לאסימון של OAuth את ההיקף:

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

דוגמה: ניסיון קריאות ל-API ל-REST בסביבת הפיתוח המקומית שלכם

אם אתם רוצים לנסות את Route Optimization API באמצעות אסימון OAuth, אבל אין לכם הגדרה ליצירת אסימונים, תוכלו להשתמש בהליך שמתואר בקטע הזה כדי לבצע את הקריאה.

בדוגמה הזו מוסבר איך משתמשים באסימון OAuth שסופק על ידי Application Default Credentials (ADC) כדי לבצע את הקריאה. במאמר אימות באמצעות ספריות לקוח מוסבר איך משתמשים ב-ADC כדי לקרוא ל-Google APIs באמצעות ספריות לקוח.

דרישות מוקדמות

כדי שתוכלו לשלוח בקשת REST באמצעות ADC, השתמשו ב-Google Cloud CLI כדי לספק את פרטי הכניסה ל-ADC:

  1. אם עדיין לא עשית זאת, עליך ליצור פרויקט ולהפעיל את החיוב לפי השלבים המפורטים במאמר הגדרה במסוף Google Cloud.
  2. מתקינים ומפעילים את ה-CLI של gcloud.
  3. מריצים את הפקודה gcloud הבאה במחשב המקומי כדי ליצור את קובץ פרטי הכניסה:

    gcloud auth application-default login
  4. מסך התחברות יוצג לפניכם. אחרי שמתחברים, פרטי הכניסה נשמרים בקובץ פרטי הכניסה המקומי שמשמש את ADC.

למידע נוסף, קראו את הקטע סביבת פיתוח מקומית במאמר מתן פרטי כניסה ל-Application Default Credentials.

יצירה של בקשת 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

פתרון בעיות

אם הבקשה מחזירה הודעת שגיאה שלפיה ה-API לא תומך בפרטי הכניסה של משתמשי הקצה, עיינו בקטע פרטי הכניסה של משתמשים לא פועלים.