Google Health API מאפשר לאפליקציה שלכם לקבל התראות בזמן אמת כשנתוני בריאות וכושר של המשתמש משתנים. במקום לבצע בדיקות חוזרות כדי לראות אם יש שינויים, השרת שלכם מקבל בקשת HTTPS POST (webhook){:target="_blank" class="external"} ברגע שהנתונים זמינים ב-Google Health API.
סוגי נתונים נתמכים
יש תמיכה בהתראות של Webhook לסוגי הנתונים הבאים:
- דקות טווח דופק
- רמת הפעילות
- גובה
- סוכר בדם
- שומן בגוף
- קלוריות בטווח הדופק
- שונות קצב הלב היומית
- טווח הדופק היומי
- רמת החמצן בדם (סטורציה) מדי יום
- קצב נשימה יומי
- הדופק היומי במנוחה
- נתונים יומיים שנגזרים מטמפרטורת השינה
- מרחק
- פעילות גופנית
- קומות
- דופק
- שונות קצב הלב
- גובה
- יומן מאזן הנוזלים
- יומן תזונה
- סיכום השינה של קצב הנשימה
- הרצת נתוני צריכת החמצן המרבית (VO2 max)
- תקופה של חוסר פעילות
- שינה
- שלבים
- זמן בטווח הדופק
- סך הקלוריות
- משקל
ההתראות על סוגי הנתונים האלה נשלחות רק אם המשתמש הביע הסכמה לאחד מההיקפים המתאימים:
- פעילות, שכוללת את סוגי הנתונים הבאים: צעדים, גובה, מרחק וקומות:
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonlyhttps://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly
- מדדי בריאות, שכוללים את סוג הנתונים של משקל:
https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonlyhttps://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
- שינה, שכולל את סוג נתוני השינה:
https://www.googleapis.com/auth/googlehealth.sleep.readonlyhttps://www.googleapis.com/auth/googlehealth.sleep.writeonly
חשבונות שירות ב-IAM
לא חובה, אבל מומלץ להשתמש בחשבון שירות של IAM כשמגדירים מנויים ל-Google Health API. חשבונות שירות מספקים אבטחה טובה יותר לעומסי עבודה של אפליקציות בהשוואה לחשבונות משתמשים רגילים, באמצעות התכונות הבאות:
- פרטי כניסה אוטומטיים לטווח קצר: כשמצרפים חשבונות שירות לסביבת הפעלה ב-Google Cloud (כמו Compute Engine, Cloud Run או Google Kubernetes Engine), הם מקבלים באופן אוטומטי פרטי כניסה מאובטחים לטווח קצר, ומבצעים רוטציה שלהם. כך נמנעים הסיכונים הכרוכים בניהול ובאחסון של מפתחות סטטיים קבועים.
- העיקרון של הרשאות מינימליות: חשבונות שירות מספקים זהויות ייעודיות לעומסי עבודה. אתם יכולים להעניק להם רק את ההרשאות הספציפיות שנדרשות לניהול נקודות קצה של מנויים, וכך למנוע גישה רחבה יותר למשאבי Google Cloud.
- מחזור חיים עצמאי: חשבונות שירות פועלים באופן עצמאי מחשבון של משתמש ספציפי, וכך שינויים בכוח האדם לא משפיעים על יציבות האימות לטווח ארוך.
הגדרה של חשבון שירות
כדי להגדיר את אפליקציית המנוי כך שתבצע אימות באמצעות חשבון שירות:
- יצירת חשבון שירות: במסוף Google Cloud, עוברים לדף IAM & Admin של הפרויקט כדי ליצור חשבון שירות חדש בניהול המשתמשים.
- הקצאת תפקידי IAM נדרשים: מקצים לחשבון השירות את התפקידים המתאימים שנדרשים לניהול אפליקציות רשומות בפרויקט בענן של Google Cloud.
- מצרפים את חשבון השירות לעומס העבודה: מגדירים את סביבת האירוח של לוגיקת המנויים כך שתפעל כחשבון השירות החדש.
כך קוד האפליקציה (למשל ספריות הלקוח של Google API) יכול לזהות באופן אוטומטי את פרטי הכניסה לטווח קצר של חשבון השירות ולהשתמש בהם כשמתבצעת קריאה ל-
projects.subscribersREST API.
תפקידים ב-CPE
כדי לנהל מנויים או מינויים ל-Google Health API, צריך להקצות את התפקיד המתאים לחשבון השירות שמבצע את קריאות ה-API. בהתאם לרמת הגישה הנדרשת, מקצים אחד מהתפקידים הבאים:
- Google Health API Read
- Google Health API Editor
- Google Health API Admin
מידע נוסף על תפקידים והרשאות ב-Google Health API IAM
ניהול המנויים
כדי לקבל התראות, צריך לרשום מנוי שמייצג את נקודת הקצה של ההתראות באפליקציה. אפשר לנהל את המנויים באמצעות ה-API בארכיטקטורת REST שזמין בכתובת projects.subscribers.
נקודת הקצה של המנויים חייבת להשתמש ב-HTTPS (TLSv1.2 ומעלה) ולכולם צריכה להיות גישה אליה.
במהלך יצירה ועדכונים של מנויים, Google Health API מבצע אתגר אימות כדי לוודא שאתם הבעלים של ה-URI של נקודת הקצה. אם האימות נכשל, פעולות היצירה והעדכון של המינויים נכשלות עם FailedPreconditionException.
יצירת מינוי
כדי לרשום מנוי חדש לפרויקט, משתמשים בנקודת הקצה create. תצטרכו לספק:
-
project-id: מספר הפרויקט שבו נוצר חשבון השירות של ה-webhook. -
subscriberId: מזהה ייחודי שאתם מספקים למנוי. המזהה הזה צריך לכלול בין 4 ל-36 תווים, ולהתאים לביטוי הרגולרי ([a-z]([a-z0-9-]{2,34}[a-z0-9])). -
endpointUri: כתובת היעד של התראות ה-webhook. -
subscriberConfigs: סוגי הנתונים שרוצים לקבל עליהם התראות, ומדיניות המינוי לכל אחד מהם. -
endpointAuthorization: מנגנון ההרשאה של נקודת הקצה. הפרמטר הזה חייב להכיל את הערךsecretשאתם מספקים. הערך שלsecretנשלח בכותרתAuthorizationעם כל הודעת התראה. אפשר להשתמש באסימון הזה כדי לוודא שהבקשות הנכנסות מגיעות מ-Google Health API. לדוגמה, אפשר להגדיר אתsecretל-Bearer R4nd0m5tr1ng123לאימות Bearer, או ל-Basic dXNlcjpwYXNzd29yZA==לאימות בסיסי.
ב-subscriberConfigs צריך להגדיר את subscriptionCreatePolicy לכל סוג נתונים. מגדירים את הערך ל-AUTOMATIC כדי להשתמש במינויים אוטומטיים, או ל-MANUAL אם אתם מתכוונים לנהל את מינויי המשתמשים בעצמכם. לפרטים נוספים על כל אפשרות, אפשר לעיין במאמרים בנושא מינויים אוטומטיים ומינויים ידניים.
בקשה
POST https://health.googleapis.com/v4/projects/project-id/subscribers?subscriberId=subscriber-id
{
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
],
"endpointAuthorization": {
"secret": "Bearer example-secret-token"
}
}תשובה
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
]
}הצגת רשימת המנויים
אפשר להשתמש בנקודת הקצה list כדי לאחזר את כל המנויים שרשומים לפרויקט.
בקשה
GET https://health.googleapis.com/v4/projects/project-id/subscribers
תשובה
{
"subscribers": [
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
],
"endpointAuthorization": {
"authorizationTokenSet": true
}
}
],
"totalSize": 1
}עדכון מנוי
משתמשים בנקודת הקצה patch כדי לעדכן מנוי בפרויקט. השדות שאפשר לעדכן הם endpointUri, subscriberConfigs ו-endpointAuthorization.
כדי לעדכן שדות, צריך לספק updateMaskפרמטר שאילתה וגוף בקשה. הפרמטר updateMask צריך להכיל רשימה מופרדת בפסיקים של שמות השדות שרוצים לעדכן, תוך שימוש בשיטת Camel Case לשמות השדות (לדוגמה, endpointUri). גוף הבקשה צריך להכיל אובייקט Subscriber חלקי עם הערכים החדשים של השדות שרוצים לעדכן. רק השדות שצוינו ב-updateMask מתעדכנים. אם תספקו שדות בגוף הבקשה שלא מופיעים ב-updateMask, המערכת תתעלם מהם.
אם מעדכנים את endpointUri או endpointAuthorization, מתבצע בדיקה של נקודת קצה. פרטים נוספים זמינים במאמר בנושא בדיקה של נקודות קצה.
כשמעדכנים את subscriberConfigs, חשוב לזכור שמדובר בהחלפה מלאה, ולא במיזוג. אם subscriberConfigs נכלל ב-updateMask, כל ההגדרות האישיות שמאוחסנות עבור המנוי הזה נדרסות על ידי הרשימה שמופיעה בגוף הבקשה. כדי להוסיף או להסיר הגדרה, צריך לספק את כל ההגדרות. אם אתם מעדכנים שדות אחרים ורוצים לשמור על ההגדרות הנוכחיות, אל תכללו את subscriberConfigs ב-updateMask.
בקשה
PATCH https://health.googleapis.com/v4/projects/project-id/subscribers/subscriber-id?updateMask=endpointUri
{
"endpointUri": "https://myapp.com/new-webhooks/health"
}תשובה
{
"name": "projects/project-id/subscribers/subscriber-id",
"endpointUri": "https://myapp.com/new-webhooks/health",
"subscriberConfigs": [
{
"dataTypes": ["steps", "altitude", "distance", "floors", "weight"],
"subscriptionCreatePolicy": "AUTOMATIC"
},
{
"dataTypes": ["sleep"],
"subscriptionCreatePolicy": "MANUAL"
}
]
}מחיקת מנוי
כדי להסיר מנוי מהפרויקט, משתמשים בנקודת הקצה delete. אחרי המחיקה, המנוי לא יקבל יותר התראות.
בקשה
DELETE https://health.googleapis.com/v4/projects/project-id/subscribers/subscriber-id
תשובה
אם המחיקה בוצעה בהצלחה, מוחזר גוף תגובה ריק עם סטטוס HTTP `200 OK`.{}בדיקה של נקודת קצה
כדי להבטיח את האבטחה והמהימנות של מסירת ההתראות, Google Health API מבצע תהליך אימות דו-שלבי מחייב בכל פעם שיוצרים מנוי או מעדכנים את הגדרת נקודת הקצה שלו (endpointUri או endpointAuthorization). התהליך הזה מתבצע באופן סינכרוני במהלך קריאה ל-API. השירות שולח שתי בקשות POST אוטומטיות ל-URI של נקודת הקצה, באמצעות User-Agent Google-Health-API-Webhooks-Verifier, עם גוף JSON {"type": "verification"}.
- לחיצת יד מורשית: הבקשה הראשונה נשלחת עם הכותרת
Authorizationשהגדרתם. השרת חייב להגיב עם סטטוס200 OKאו201 Created. - אתגר לא מורשה: הבקשה השנייה נשלחת ללא פרטי כניסה.
השרת צריך להגיב עם סטטוס
401 Unauthorizedאו403 Forbidden.
הלחיצת יד הזו מאשרת שנקודת הקצה פעילה ומאכפתת את האבטחה בצורה נכונה. אם אחד מהשלבים נכשל, בקשת ה-API נכשלת עם שגיאה FAILED_PRECONDITION. רק אחרי שהלחיצת יד הזו מצליחה, המנוי נשמר ומופעל כדי לקבל התראות על נתוני בריאות וכושר.
רוטציית מפתחות
אם אתם צריכים לסובב מפתחות ל-endpointAuthorization, אתם יכולים לפעול לפי השלבים הבאים:
- מגדירים את נקודת הקצה כך שתקבל גם את הערכים הישנים וגם את הערכים החדשים של
endpointAuthorization. - מעדכנים את הגדרות המנוי עם הערך החדש
endpointAuthorizationבאמצעות בקשתpatchעם?updateMask=endpointAuthorization. - מגדירים את נקודת הקצה כך שתקבל רק ערך חדש של
endpointAuthorizationאחרי שמוודאים ששלב 2 בוצע בהצלחה.
מינויים של משתמשים
Google Health API עוזר לכם לנהל את המינויים של המשתמשים בצורה יעילה, וכך מצמצם את הצורך ברישום ידני במהלך צירוף משתמשים.
מינויים אוטומטיים
מומלץ להשתמש במינויים אוטומטיים. כדי להפעיל את התכונה הזו, צריך להגדיר את subscriptionCreatePolicy לערך AUTOMATIC ב-subscriberConfigs עבור סוגי הנתונים הספציפיים. הנתונים שאתם מציינים במדיניות dataTypes הם אותם סוגי נתונים ש-Google Health API שולח לגביהם התראות, בתנאי שהמשתמשים גם נתנו הסכמה מהמשתמש לגבי סוגי הנתונים האלה.AUTOMATIC
כשמשתמש מעניק לאפליקציה הסכמה להיקפי הרשאות שתואמים לסוגי נתונים עם מדיניות AUTOMATIC, Google Health API עוקב באופן אוטומטי אחרי סוגי הנתונים שנובעים מהחיתוך בין סוגי הנתונים שהמשתמש הסכים לשתף לבין סוגי הנתונים של הגדרת המנוי האוטומטית של אותו משתמש, ושולח התראות לגביהם. לאחר מכן, המערכת שולחת התראות לנקודת הקצה שלכם בכל פעם שהמשתמש הזה יוצר נתונים חדשים מהסוגים האלה. האפשרות הזו מתאימה למשתמשים שמביעים הסכמה לפני או אחרי שיוצרים את המינוי. לא מתבצעת השלמת חוסר בנתונים (data backfill) לגבי נתונים שנוצרו לפני יצירת המנוי.
אם משתמש מבטל את ההסכמה, ההתראות לגבי סוגי הנתונים התואמים יפסיקו. מינויים אוטומטיים מנוהלים על ידי Google ואי אפשר להציג אותם או למחוק אותם בנפרד. הם מוסרים רק כשמוחקים את המינוי הראשי.
מינויים ידניים
אם המנוי שלכם מוגדר עם MANUAL subscription_create_policy
לסוגי נתונים ספציפיים, אתם צריכים ליצור ולנהל מנויים באופן מפורש
לכל משתמש. מנוי מקשר משתמש ספציפי לנקודת הקצה של המנוי
שלכם עבור קבוצה מוגדרת של סוגי נתונים. מפתחים יכולים להשתמש בממשקי API ספציפיים כדי:
- יצירת מינויים (ידנית) לכל
healthUserId– יוצרת מינוי חדש למשתמש ספציפי. כדי להשתמש בשיטה הזו, המינוי של המשתמש צריך להיותSubscriptionCreatePolicyעם ההגדרהMANUALלסוגי הנתונים המבוקשים. - עדכון (ידני) של מינוי – עדכון של סוגי הנתונים של מינוי קיים של משתמש.
- מחיקת מינוי (ידנית) – מחיקת מינוי של משתמש ספציפי. אחרי המחיקה, נקודת הקצה של המנוי לא תקבל יותר התראות לגבי המשתמש הזה עבור סוגי הנתונים המשויכים.
- רשימת מינויים (ידנית) – רשימה של כל המינויים הפעילים של מנוי מסוים. אפשר לסנן את התוצאות לפי משתמש או סוג נתונים.
התראות
כשנתונים של משתמש משתנים עבור סוג נתונים שהמשתמש נרשם לקבלת עדכונים לגביו, Google Health API שולח בקשת HTTPS POST לכתובת ה-URL של נקודת הקצה של המשתמש.
פורמט ההתראות
המטען הייעודי של ההתראה הוא אובייקט JSON שמכיל פרטים על שינוי הנתונים. הנתונים האלה כוללים את מזהה המשתמש, סוג הנתונים ומרווחי הזמן, ואפשר להשתמש בהם כדי להריץ שאילתה על הנתונים המעודכנים.
{
"data": {
"version": "1",
"clientProvidedSubscriptionName": "subscription-name",
"healthUserId": "health-user-id",
"operation": "UPSERT",
"dataType": "steps",
"intervals": [
{
"physicalTimeInterval": {
"startTime": "2026-03-08T01:29:00Z",
"endTime": "2026-03-08T01:34:00Z"
},
"civilDateTimeInterval": {
"startDateTime": {
"date": {
"year": 2026,
"month": 3,
"day": 7
},
"time": {
"hours": 17,
"minutes": 29
}
},
"endDateTime": {
"date": {
"year": 2026,
"month": 3,
"day": 7
},
"time": {
"hours": 17,
"minutes": 34
}
}
},
"civilIso8601TimeInterval": {
"startTime": "2026-03-07T17:29:00",
"endTime": "2026-03-07T17:34:00"
}
}
]
}
}
השדה operation מציין את סוג השינוי שהפעיל את ההתראה:
-
UPSERT: נשלח בכל פעם שמוסיפים נתונים או משנים אותם. -
DELETE: נשלח כשמשתמש מוחק נתונים.
מומלץ להגדיר את הלוגיקה לטיפול בהתראות כאידמפוטנטית, במיוחד עבור פעולות UPSERT, כי ניסיונות חוזרים יכולים לגרום לשליחת התראות כפולות.
השדה clientProvidedSubscriptionName הוא מזהה ייחודי. למינויים עם מדיניות MANUAL, השדה הזה מכיל את שם המינוי הקבוע שסופק על ידי המפתח והוגדר כשנוצר המינוי.
כך מתקבל מזהה יציב לניהול מינויים ידניים. למינויים שנוצרו עם מדיניות AUTOMATIC, Google Health API יוצר ומקצה באופן אוטומטי מזהה ייחודי (UUID אקראי) לשדה הזה לכל התראה. הכללת clientProvidedSubscriptionName במדיניות ידנית ואוטומטית מבטיחה פורמט עקבי של מטען ייעודי (Payload) של התראות בכל סוגי המינויים.
healthUserId הוא מזהה של Google Health API עבור המשתמש שהנתונים שלו השתנו. אם האפליקציה שלכם תומכת במספר משתמשים, יכול להיות שתקבלו התראות לגבי כל משתמש שהעניק לאפליקציה שלכם הסכמה. כשמקבלים התראה, משתמשים ב-healthUserId כדי לזהות את הנתונים של איזה משתמש השתנו, כדי שאפשר יהיה להשתמש בפרטי הכניסה שלו ל-OAuth כדי לשלוח שאילתה לגבי הנתונים שלו.
כדי למפות את פרטי הכניסה של משתמש ב-OAuth ל-healthUserId שלו, משתמשים בנקודת הקצה getIdentity. מתקשרים לנקודת הקצה הזו עם פרטי הכניסה של המשתמש במהלך צירוף המשתמש כדי לאחזר את healthUserId שלו, ושומרים את המיפוי הזה. המיפוי הזה לא משתנה עם הזמן, ולכן אפשר לשמור אותו במטמון ללא הגבלת זמן. דוגמה מופיעה במאמר בנושא קבלת מזהה משתמש. כך תוכלו לבחור את פרטי הכניסה הנכונים של המשתמש כשאתם שולחים שאילתות לנתונים על סמך healthUserId בהתראה.
איך משיבים להתראות
השרת שלכם צריך להגיב להתראות באופן מיידי עם קוד סטטוס HTTP 204 No Content. כדי למנוע פסק זמן, צריך לעבד את מטען הנתונים של ההתראה באופן אסינכרוני אחרי שליחת התגובה. אם Google Health API מקבל קוד סטטוס אחר או אם הבקשה נכשלת בגלל פסק זמן, המערכת מנסה לשלוח את ההתראה שוב מאוחר יותר.
דוגמה ל-Node.js (Express):
app.post('/webhook-receiver', (req, res) => {
// 1. Immediately acknowledge the notification
res.status(204).send();
// 2. Process the data asynchronously in the background
const notification = req.body;
setImmediate(() => {
console.log(`Update for user ${notification.data.healthUserId} of type ${notification.data.dataType}`);
// Trigger your data retrieval logic here
});
});
אימות חתימה
כדי לוודא את האותנטיות של התראות Webhooks, מטען ה-JSON הגולמי של כל התראת webhook יוצאת נחתם באמצעות מפתח פרטי באמצעות Tink's PublicKeySign, ומספק את החתימה בקידוד Base64 בכותרת GOOGLE-HEALTH-API-SIGNATURE HTTP בבקשה. המפתחות לחתימה מתחלפים אוטומטית כל 30 יום, וקבוצת המפתחות הציבוריים הרשמית התואמת מופצת כקובץ JSON בכתובת ה-URL הקבועה https://www.gstatic.com/googlehealthapi/webhooks/webhooks_public_keyset.json.
איך מאמתים את החתימה
שימוש ב-Tink (מומלץ): מפתחים יכולים לאמת את החתימה באמצעות הפרימיטיב PublicKeyVerify של Tink. מאחזרים את קבוצת המפתחות הציבוריים מכתובת ה-URL הקבועה, יוצרים מופע של הפרימיטיב PublicKeyVerify עם קבוצת המפתחות ומאמתים את הכותרת GOOGLE-HEALTH-API-SIGNATURE שפוענחה מול מטען ה-JSON הייעודי הגולמי של ה-webhook.
אימות ידני (ללא Tink): אם מפתחים בוחרים לא להשתמש ב-Tink, הם יכולים לאמת את החתימה באופן ידני לפי השלבים הבאים:
- מפענחים את הכותרת
GOOGLE-HEALTH-API-SIGNATUREבקידוד Base64 כדי להפריד את הקידומת של Tink באורך 5 בייט (שמכילה קידומת גרסה באורך בייט אחד ו-keyId באורך 4 בייט) מהחתימה בפועל בקידוד DER. - מאחזרים את קבוצת המפתחות של ה-JSON מהכתובת https://www.gstatic.com/googlehealthapi/webhooks/webhooks_public_keyset.json.
- מאתרים את המפתח שתואם ל-keyId שנותח ומבצעים פענוח Base64 של שדה הערך שלו, שמכיל מאגר פרוטוקול EcdsaPublicKey שעבר סריאליזציה.
- תחלצו את הקואורדינטות x ו-y בפורמט big-endian (תגי Protobuf 3 ו-4) ממטען הנתונים הבינארי הזה.
- יוצרים מופע של מפתח ציבורי רגיל מסוג ECDSA P-256 בספריית קריפטוגרפיה מובנית באמצעות קואורדינטות x ו-y שחולצו.
- מאמתים את מטען ה-JSON הייעודי (payload) של ה-webhook הגולמי מול חתימת ה-DER שחולצה באמצעות אלגוריתם SHA-256.
סטטוס המנוי ושחזור
אם נקודת הקצה של המנוי לא זמינה או מחזירה קוד סטטוס של שגיאה (כל קוד אחר מלבד 204), Google Health API מאחסן התראות בהמתנה למשך עד 7 ימים ומנסה לשלוח אותן שוב עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff).
כשהנקודה תהיה שוב אונליין ותגיב עם 204, ה-API יעביר אוטומטית את ההודעות שהצטברו. התראות מלפני יותר מ-7 ימים יימחקו ולא יהיה אפשר לשחזר אותן.
שגיאות נפוצות
| קוד שגיאה | שליחת הודעה | תיאור | המלצה |
|---|---|---|---|
| 400 בקשה שגויה | מספר הפרויקט בשם המשאב לא תקין | כשמוחקים או מעדכנים מנוי באמצעות מזהה הפרויקט ב-Google Cloud בכתובת ה-URL של הבקשה במקום מספר הפרויקט. זה רלוונטי למנויים של webhook באמצעות נקודת הקצה projects.subscribers. |
משתמשים במספר הפרויקט ב-Google Cloud בכתובת ה-URL של הבקשה, ולא במזהה הפרויקט. |
| 403 Forbidden | למתקשר אין הרשאה | כשיוצרים או מציגים רשימה של מנויים באמצעות מזהה פרויקט Google Cloud בכתובת ה-URL של הבקשה במקום מספר הפרויקט. זה רלוונטי למנויי webhook באמצעות נקודת הקצה projects.subscribers. |
משתמשים במספר הפרויקט ב-Google Cloud בכתובת ה-URL של הבקשה, ולא במזהה הפרויקט. |