שימוש ב-OAuth

מפתחים באזור הכלכלי האירופי (EEA)

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

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

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

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

מידע על OAuth

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

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

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

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

כדי להשתמש ב-OAuth עם Geocoding API, צריך להקצות לטוקן ה-OAuth את ההיקף הנכון. Geocoding API תומך בהיקפים הבאים:

  • https://www.googleapis.com/auth/maps-platform.geocode — משתמשים בו בכל נקודות הקצה של Geocoding API.
  • https://www.googleapis.com/auth/maps-platform.geocode.address — משתמשים רק עם GeocodeAddress להמרת כתובות (forward geocoding).
  • https://www.googleapis.com/auth/maps-platform.geocode.location — משתמשים רק עם GeocodeLocation להמרת קואורדינטות לכתובות (reverse geocoding).
  • https://www.googleapis.com/auth/maps-platform.geocode.place — משתמשים רק עם GeocodePlace להמרת מיקום של מקום לקואורדינטות.

בנוסף, אפשר להשתמש בהיקף הכללי https://www.googleapis.com/auth/cloud-platform לכל נקודות הקצה של Geocoding API. ההיקף הזה שימושי במהלך הפיתוח כי זהו היקף ברירת המחדל שבו נעשה שימוש כשיוצרים אסימונים באמצעות gcloud.

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

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

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

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

כדי שתוכלו לשלוח בקשת REST באמצעות ADC, אתם צריכים להשתמש ב-CLI של Google Cloud כדי לספק ל-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.

  • מעבירים את המזהה או השם של הפרויקט ב-Google Cloud שבו החיוב מופעל בכותרת X-Goog-User-Project. מידע נוסף זמין במאמר הגדרה במסוף Cloud.

בדוגמה הבאה מתבצעת קריאה ל-Geocoding API באמצעות אסימון OAuth:

curl -X GET -H 'Content-Type: application/json' \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"

פתרון בעיות

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