הגדרת Weather API

במסמך הזה מפורטים השלבים שצריך לבצע כדי להתחיל להשתמש ב-Weather API.

כדי להתחיל להשתמש ב-Weather API, אתם יכולים לבקש Maps Demo Key או להגדיר חשבון ולהפעיל את החיוב.

איך מקבלים Maps Demo Key

‫Maps Demo Key היא תכונה חינמית שמאפשרת להתחיל ליצור אב טיפוס באמצעות Weather API בלי לציין פרטי חיוב. ‫Maps Demo Key מיועד למטרות בדיקה ויצירת אב טיפוס בלבד, ולא לשימוש בסביבת ייצור. מידע נוסף זמין במאמר איך מקבלים Maps Demo Key ומשתמשים בו עם Weather API.

קבלת מפתח API רגיל

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

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

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

  1. בדיקת החיוב והעלות של השימוש ב-Weather 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

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

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

המסוף

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

    הפעלת Weather API
  2. לוחצים על הכפתור הפעלה.

gcloud

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

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

איך מקבלים מפתח API לשימוש ב-Weather 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 שהמפתח הזה לא צריך, ומוודאים שהאפשרות Weather API נשארת מסומנת.
      4. לוחצים על יצירה. בחלונית מוצג מפתח ה-API החדש.
    • שימוש במפתח קיים:

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

    בחירת API כאן לא מפעילה אותו. מוודאים ש-Weather 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=weather.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=weather.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

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

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

    curl -X GET "https://weather.googleapis.com/v1/currentConditions:lookup?key=YOUR_API_KEY&location.latitude=37.4220&location.longitude=-122.0841"
    
  2. לוחצים על סמל ההעתקה בדוגמת הקוד, לוחצים על סמל ההעתקה., כדי להעתיק את הפקודה curl.
  3. מדביקים את הפקודה בחלון הטרמינל ומריצים אותה.

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

{
  "currentTime": "2025-07-01T12:33:24.606422609Z",
  "timeZone": {
    "id": "America/Los_Angeles"
  },
  "isDaytime": false,
  "weatherCondition": {
    "iconBaseUri": "https://maps.gstatic.com/weather/v1/partly_clear",
    "description": {
      "text": "Partly cloudy",
      "languageCode": "en"
    },
    "type": "PARTLY_CLOUDY"
  },
  "temperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "feelsLikeTemperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "dewPoint": {
    "degrees": 12,
    "unit": "CELSIUS"
  },
  "heatIndex": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "windChill": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "relativeHumidity": 78,
  "uvIndex": 0,
  "precipitation": {
    "probability": {
      "percent": 3,
      "type": "RAIN"
    },
    "snowQpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    },
    "qpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    }
  },
  "thunderstormProbability": 0,
  "airPressure": {
    "meanSeaLevelMillibars": 1011.5
  },
  ...
}

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

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

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

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

יצירת טוקן OAuth

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

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

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

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

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

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

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

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

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

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

אם אין לכם סביבה שיוצרת טוקנים ואתם רוצים לנסות את Weather 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.

כדי לשלוח קריאה ל-Weather API באמצעות אסימון OAuth:

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

    curl -X GET \
    -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://weather.googleapis.com/v1/currentConditions:lookup?location.latitude=37.4220&location.longitude=-122.0841"
  2. כדי להעתיק את הפקודה curl, לוחצים על Copy בדוגמת הקוד.

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

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

{
  "currentTime": "2025-07-01T12:33:24.606422609Z",
  "timeZone": {
    "id": "America/Los_Angeles"
  },
  "isDaytime": false,
  "weatherCondition": {
    "iconBaseUri": "https://maps.gstatic.com/weather/v1/partly_clear",
    "description": {
      "text": "Partly cloudy",
      "languageCode": "en"
    },
    "type": "PARTLY_CLOUDY"
  },
  "temperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "feelsLikeTemperature": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "dewPoint": {
    "degrees": 12,
    "unit": "CELSIUS"
  },
  "heatIndex": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "windChill": {
    "degrees": 16,
    "unit": "CELSIUS"
  },
  "relativeHumidity": 78,
  "uvIndex": 0,
  "precipitation": {
    "probability": {
      "percent": 3,
      "type": "RAIN"
    },
    "snowQpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    },
    "qpf": {
      "quantity": 0,
      "unit": "MILLIMETERS"
    }
  },
  "thunderstormProbability": 0,
  "airPressure": {
    "meanSeaLevelMillibars": 1011.5
  },
  ...
}

פתרון בעיות

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

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

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