שימוש ב-OAuth

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

במסמך הזה נסביר איך להעביר אסימון OAuth לקריאה ל-Rout Optimize API סביבת פיתוח. לקבלת הוראות לשימוש ב-OAuth בסביבת production, אימות ב-Google.

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

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

מידע על OAuth

יש הרבה דרכים ליצור אסימוני גישה באמצעות OAuth ולנהל אותם בהתאם לפריסה הסביבה.

לדוגמה, מערכת Google OAuth 2.0 תומכת באינטראקציות בין שרת לשרת, כמו אינטראקציות כאלה בין האפליקציה לשירות של Google. בתרחיש הזה צריך חשבון שירות, הוא חשבון ששייך לאפליקציה במקום למשתמש קצה ספציפי. שלך קוראת ל-Google APIs מטעם חשבון השירות, כך שהמשתמשים לא מעורבים באופן ישיר. אפשר למצוא מידע נוסף על שיטות אימות אימות ב-Google.

לחלופין, אפשר להשתמש ב-Rout Optimization API כחלק מאפליקציה לנייד ל-Android או ל-iOS. למידע כללי על השימוש ב-OAuth עם Route Optimize API, כולל מידע על ניהול לאסימוני גישה לסביבות פריסה שונות: שימוש ב-OAuth 2.0 כדי לגשת ל-Google APIs.

מידע על היקפי הרשאות של OAuth

כדי להשתמש ב-OAuth עם Rute Optimize API, צריך להקצות לאסימון OAuth את ההיקף:

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

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

אם אתם רוצים לנסות את Route Optimize 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.

בדוגמה הבאה נשלחת קריאה ל-Rout 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 לא תומך בפרטי הכניסה של משתמשי הקצה, ראו פרטי הכניסה של משתמש לא תקינים.