הגדרת Places API (חדש)

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

במסמך הזה מתוארים השלבים שצריך לבצע כדי להתחיל להשתמש ב-Places API (החדש).

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

כאן נסביר איך מגדירים חשבון Google Cloud ופרויקט בענן ב-Google Cloud עם חיוב מופעל. חשוב גם להבין איך מתבצע החיוב על השימוש ב-Places API (החדש).

  1. בדיקת החיוב והעלות של השימוש ב-Places API (חדש) Usage and Billing.
  2. מוודאים שיש לכם חשבון Google Cloud.

    נכנסים למסוף Google Cloud
  3. מוודאים שיש לכם פרויקט ב-Google Cloud שהחיוב מופעל בו.

    כניסה לדף Billing
    1. בוחרים את הפרויקט כדי לפתוח את הדף Billing.
    2. בדף Billing:

      • אם החיוב כבר מופעל בפרויקט שנבחר ויש לכם רק חשבון לחיוב אחד, ייפתח הדף Billing.
      • אם יש לכם כמה חשבונות לחיוב, לוחצים על Go to linked billing account כדי לראות את הפרטים של החשבון לחיוב שמשויך לפרויקט.
      • אם קיים חשבון לחיוב אבל הוא לא משויך לפרויקט, תתבקשו לקשר חשבון לחיוב לפרויקט.
      • אם אין חשבון לחיוב או שרוצים ליצור חשבון חדש, בוחרים באפשרות Manage Billing Accounts כדי ליצור חשבון חדש לחיוב. למידע נוסף, קראו את המאמר איך יוצרים חשבון חדש לחיוב ב-Cloud בשירות עצמי.

הפעלת ה-API

כדי להשתמש ב-Places API (החדש), צריך להפעיל אותו בפרויקט ב-Google Cloud באמצעות מסוף Google Cloud או הפקודה gcloud.

כדי להפעיל את ה-API:

המסוף

  1. פותחים את דף המוצר במסוף Google Cloud:

    הפעלת Places API (חדש)
  2. לוחצים על הכפתור הפעלה.

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

מידע נוסף על Google Cloud SDK, התקנת Cloud SDK והפקודות הבאות:

קבלת מפתח API לשימוש עם Places API (חדש)

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

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

המסוף

  1. נכנסים לדף Google Maps Platform > Keys & Credentials.

    כניסה לדף Keys & Credentials

  2. אם מתבקשים, בוחרים את הפרויקט.
  3. מבצעים אחת מהפעולות האלה:

    • יצירת מפתח חדש:

      1. לוחצים על Create credentials > מפתח API.
      2. בחלונית יצירת מפתח API, פותחים את הרשימה בחירת הגבלות API.
      3. מבטלים את הבחירה בכל ממשקי ה-API שהמפתח הזה לא צריך, ומוודאים שהאפשרות Places API (New) נשארת מסומנת.
      4. לוחצים על יצירה. בחלונית מוצג מפתח ה-API החדש.
    • שימוש במפתח קיים:

      1. לוחצים על שם המפתח.
      2. ברשימה Select API restrictions, בוחרים באפשרות Places API (New).
      3. לוחצים על שמירה.

    בחירת API כאן לא מפעילה אותו. מוודאים ש-Places API (חדש) מופעל בדף API Library.

  4. כדי לראות את מחרוזת המפתח מאוחר יותר, עוברים לדף Keys & Credentials ולוחצים על Show key ליד המפתח.

אם המסוף נראה שונה מהשלבים האלה, עיינו במאמרים יצירת מפתח API והוספת הגבלות על API במסמכי התיעוד של Google Cloud.

gcloud

בפקודות הבאות, מחליפים את PROJECT_ID במזהה הפרויקט.

  • יצירת מפתח חדש: מריצים את הפקודה הבאה ומחליפים את DISPLAY_NAME בשם של המפתח.

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

    מידע נוסף על Google Cloud SDK, התקנת Cloud SDK והפקודות הבאות:

  • שימוש במפתח קיים: מריצים את הפקודה הבאה ומחליפים את KEY_ID במזהה המפתח. הדגל --append שומר על ממשקי ה-API שהמפתח כבר מאפשר. בלעדיו, הפקודה מחליפה אותם.

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

    מידע נוסף על Google Cloud SDK, התקנת Cloud SDK והפקודות הבאות:

    מזהה המפתח הוא לא מחרוזת המפתח או השם המוצג. כדי למצוא אותו, מריצים את הפקודה gcloud services api-keys list --project="PROJECT_ID". המזהה הוא החלק האחרון בשדה name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

כדי לראות את מחרוזת המפתח, מריצים את הפקודה gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID".

שליחת בקשת API

שולחים בקשה ל-Places API (החדש) כדי להחזיר תשובת JSON לחיפוש טקסט במחרוזת "Spicy Vegetarian Food in Sydney, Australia". בכל בקשה צריך לכלול את המחרוזת האלפאנומרית של מפתח ה-API, ולהשתמש ב-HTTPS בבקשות שכוללות את מפתח ה-API.

  1. לוחצים על API_KEY בקוד שבהמשך כדי להוסיף את המחרוזת האלפאנומרית של המפתח:

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. לוחצים על סמל ההעתקה בדוגמת הקוד, לוחצים על סמל ההעתקה., כדי להעתיק את הפקודה curl.
  3. מדביקים את הפקודה בחלון הטרמינל ומריצים אותה.

התגובה היא אובייקט JSON בפורמט הבא:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

החלת הגבלות על מפתחות API

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

  • הגבלות על ממשקי API מציינות לאילו ערכות SDK וממשקי API אפשר לקרוא באמצעות מפתח ה-API. כשיוצרים מפתח במסוף וב-CLI של gcloud, צריך להגדיר לפחות הגבלה אחת ל-API.
  • הגבלות על אפליקציות מציינות אילו כתובות IP, אפליקציות ואתרים יכולים להשתמש במפתח API.

מידע נוסף על הגבלות זמין במאמר הגבלת מפתחות API.

יצירת טוקן OAuth

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

במסמך הזה מוסבר איך להעביר טוקן OAuth לקריאה ל-Places API (החדש) בסביבת הפיתוח. למידע נוסף על השימוש ב-OAuth בסביבת ייצור, קראו את המאמר שיטות אימות ב-Google.

אתם יכולים לשלוח בקשות API ישירות לשרת של Google Maps API, או להשתמש בספריות לקוח כדי לפשט את הקוד. במפות Google יש ספריות לקוח ל-Go, ל-Java, ל-Node.js ול-Python. מידע נוסף זמין במאמר ספריות לקוח של Places API (חדש).

סקירה כללית על OAuth

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

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

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

היקפי ההרשאות של OAuth

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

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

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

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

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

התהליך הבא של REST מיועד רק לפיתוח או לבדיקה, ולא לייצור.

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

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

  1. מתקינים ומפעילים את ה-CLI של gcloud. למידע נוסף, קראו את המאמר התקנת ה-CLI של gcloud.

  2. אימות באמצעות ה-CLI של gcloud:

    gcloud auth application-default login
  3. משלימים את תהליך הכניסה כדי לשמור את פרטי הכניסה בקובץ פרטי הכניסה המקומי שמשמש את ADC.

מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

שליחת בקשת REST

בדוגמה הזו, אתם מעבירים שתי כותרות של בקשות:

  • מעבירים את טוקן ה-OAuth בכותרת Authorization באמצעות הפקודה הבאה כדי ליצור את הטוקן:

    gcloud auth application-default print-access-token

    האסימון שמוחזר כולל את ההיקף https://www.googleapis.com/auth/cloud-platform.

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

כדי לשלוח קריאה ל-Places API (החדש) באמצעות אסימון OAuth, מבצעים את השלבים הבאים:

  1. בדוגמת הקוד הבאה, מחליפים את PROJECT_ID במזהה הפרויקט ב-Google Cloud:

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -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: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. כדי להעתיק את הפקודה curl, לוחצים על Copy בדוגמת הקוד.

  3. מדביקים את הפקודה בחלון הטרמינל ומריצים אותה.

התגובה היא אובייקט JSON:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

פתרון בעיות

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

המאמרים הבאים

אחרי שהפעלתם את Places API (חדש) והגדרתם מפתח API, אתם יכולים לקרוא את המאמר מידע על Places API (חדש) כדי ללמוד איך להשתמש ב-Places API (חדש).