בדף הזה מוסבר איך להשתמש בהתראות פוש עם Reseller API.
סקירה כללית
Reseller API משתמש ב-Pub/Sub API כדי לשלוח התראות על אירועים שקשורים למינויים ל-Google Workspace. לדוגמה, אפשר להגדיר התראות פוש כדי לקבל הודעה כשסטטוס המינוי של לקוח משתנה.
דרישות מוקדמות
- מפעילים את Pub/Sub API בפרויקט בענן של Google.
- מקצים לחשבון השירות תפקידי IAM ב-Pub/Sub בפרויקט בענן. מומלץ להעניק את התפקיד
roles/pubsub.editor, אבל אפשר להשתמש בהרשאות ספציפיות יותר ב-Pub/Sub.
יצירת נושא
כדי ליצור נושא, נרשמים ל-Reseller API באמצעות ה-method resellernotify.register. השיטה הזו מקבלת כפרמטר את כתובת האימייל של חשבון השירות.
רק חשבונות שירות שקיבלו הרשאה בשיטה הזו יכולים להירשם לנושא.
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
תגובה מוצלחת מחזירה קוד סטטוס 200 של HTTP ותגובה בפורמט JSON שמכילה את שם נושא ה-Pub/Sub.
דוגמה לתגובה:
{
"topicName": "projects/partner-watch/topics/C0abcdefg"
}
כדי לתת הרשאה לעוד חשבונות שירות, צריך להתקשר שוב אל resellernotify.register.
ביטול הגישה לחשבון שירות
Reseller API יכול לבטל את הרישום של חשבונות שירות באמצעות נקודת הקצה resellernotify.unregister:
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
הרשמה לנושא
אחרי שיוצרים את נושא Pub/Sub, מגדירים איך האפליקציה צורכת אירועי שינוי. יש לבחור אחת מהאפשרויות הבאות:
- הרשמה לקבלת עדכונים: אתם מספקים קריאה חוזרת (callback) של HTTP
POST. מערכת Pub/Sub משתמשת בקריאה החוזרת הזו כדי להודיע לאפליקציה על אירועים חדשים. - מינוי מסוג pull: האפליקציה שלכם מבצעת מעת לעת קריאת HTTP כדי לקבל שינויים בתור.
דוגמה לבקשה להירשם למינוי לנושא:
PUT https://pubsub.googleapis.com/v1/projects/PROJECT/subscriptions/SUBSCRIPTION_NAME
{
"topic": "TOPIC_NAME"
// Only needed for push configurations
"pushConfig": {
"pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
},
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: הפרויקט שלכם ב-Google Cloud. -
SUBSCRIPTION_NAME: שם מזהה של המינוי. -
TOPIC_NAME: נושא ה-Pub/Sub שיצרתם קודם. -
PUSH_NOTIFICATION_ENDPOINT: נקודת הקצה של ה-handler של הודעות הפוש.
תגובה מוצלחת מחזירה קוד סטטוס HTTP 200. דוגמה לתגובה:
{
"name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME",
"topic": "TOPIC_NAME",
"pushConfig": {
"pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
},
"ackDeadlineSeconds": 10
}
פורמטים של התראות
דוגמה להתראת Pub/Sub. נתוני ההודעה הם מחרוזת JSON בקידוד base64.
{
"message": {
"attributes": {},
"data": "eyJza3VfaWQiOiAiR29vZ2xlLUFwcHMtVW5saW1pdGVkIiwgImV2ZW50X3R5cGUiOiAiU1VCU0NSSVBUSU9OX0NBTkNFTExFRCIsICJjdXN0b21lcl9kb21haW5fbmFtZSI6ICJkb21haW4uY29tIiwgInN1YnNjcmlwdGlvbl9pZCI6ICIxMjM0NTY3IiwgImN1c3RvbWVyX2lkIjogIkMwYWJjZGVmIiwgIm1lc3NhZ2VfaWQiOiAiODY3NTMwOSIsICJwdWJsaXNoX3RpbWUiOiB7InNlY29uZHMiOiAxNDU3NzMxODQ2LCAibmFub3MiOiAzNDkwMDAwMDB9LCAicmVzZWxsZXJfY3VzdG9tZXJfaWQiOiAiQzByZXNlbGxlciJ9",
"message_id": 1234567891012131
},
"subscription": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME"
}
אובייקט message.data לדוגמה אחרי פענוח:
{
"customer_id": "C0abcdef",
"customer_domain_name": "domain.com",
"event_type": "SUBSCRIPTION_CANCELLED",
"sku_id": "Google-Apps-Unlimited",
"subscription_id": "1234567",
// Optional fields dependent on event_type
"subscription_suspension_reasons": [],
"subscription_cancellation_reason": "REASON"
}
סוגי אירועים
סוגי אירועים אפשריים:
-
NEW_SUBSCRIPTION_CREATED: נוצר מינוי חדש. -
SUBSCRIPTION_TRIAL_ENDED: תקופת הניסיון של המינוי הסתיימה. -
PRICE_PLAN_SWITCHED: הלקוח עבר מתוכנית גמישה לתוכנית שנתית. האירוע הזה לא מופעל אם הלקוח עובר מתוכנית שנתית לתוכנית גמישה כחלק מחידוש המינוי. -
COMMITMENT_CHANGED: המחויבות השנתית הוגדלה או הוקטנה. -
SUBSCRIPTION_RENEWED: מינוי שנתי חודש. -
SUBSCRIPTION_SUSPENDED: המינוי מושעה. מידע נוסף זמין במאמר בנושאsubscription_suspension_reasons. -
SUBSCRIPTION_SUSPENSION_REVOKED: ההשעיה בוטלה. -
SUBSCRIPTION_CANCELLED: המינוי בוטל. מידע נוסף זמין במאמר בנושאsubscription_cancellation_reason. יכול לזהות גם העברות. -
SUBSCRIPTION_CONVERTED: המינוי הומר. דוגמאות:- המרת מינוי ישיר למינוי דרך מפיץ.
- המרת מינוי בתשלום למבצע תקופת חסד.
- המרת מינוי אונליין למינוי אופליין.
-
SUBSCRIPTION_UPGRADE: המק"ט של המינוי שודרג. דוגמה: מעבר מ-Google Workspace Business Starter ל-Business Standard. -
SUBSCRIPTION_DOWNGRADE: המק"ט של המינוי שודרג לאחור. לדוגמה: מ-Google Workspace Business Standard ל-Business Starter. -
LICENSE_ASSIGNMENT_CHANGED: הרישיון הוקצה או בוטל. אפשר להשתמש בו כדי לעקוב אחרי שינויים במספר המושבים במינויים גמישים.
סיבות לביטולי מינויים
הסיבה לביטול מאוכלסת כשהערך של event_type הוא SUBSCRIPTION_CANCELLED. סיבות אפשריות:
-
TRANSFERRED_OUT: הלקוח עבר לחיוב ישיר או למפיץ אחר. -
PURCHASE_OF_SUBSUMING_SKU: הלקוח שדרג למק"ט שמבטל מק"ט אחר. דוגמה: לקוח עם Google Workspace Business Starter ו-Vault משדרג ל-Business Plus, שכולל את Vault. -
RESELLER_INITIATED: המפיץ ביטל את המינוי. -
OTHER: המינוי בוטל מסיבה אחרת.
סיבות להשעיית מינויים
הסיבה להשעיה מאוכלסת כשהערך של event_type הוא SUBSCRIPTION_SUSPENDED. סיבות אפשריות:
-
PENDING_TOS_ACCEPTANCE: הלקוח לא אישר את התנאים וההגבלות של Google Workspace שנמכר מחדש. -
RENEWAL_WITH_TYPE_CANCEL: ההתחייבות של הלקוח הסתיימה והשירות בוטל. -
RESELLER_INITIATED: המפיץ השעה את המינוי באופן ידני. -
TRIAL_ENDED: תקופת הניסיון של הלקוח הסתיימה והוא לא בחר תוכנית בתשלום. -
OTHER: הלקוח הושעה בגלל סיבה פנימית של Google, כמו התנהלות פוגעת.
מגבלות של Pub/Sub
סדר ההתראות לא תמיד רציף. יכול להיות שההודעות יימסרו כמה פעמים או לא יימסרו בכלל. מומלץ להשתמש ב-reseller.subscriptions.get במינויים שהשתנו כדי לאחזר את המצב הנוכחי.