סקירה כללית
המפיץ API משתמש ב-Pub/Sub API כדי להעביר דחיפה התראות על סוגים שונים של שירותי Google Workspace אירועים במינוי. לדוגמה, אפשר להגדיר כדי לקבל הודעה על כך שהלקוחות סטטוסים של מינויים שינוי.
דרישות מוקדמות
- מפעילים את Pub/Sub API של הפרויקט ב-Google Cloud.
- נותנים לחשבון השירות ב-Pub/Sub תפקידי IAM
פרויקט בענן. מתן
התפקיד
roles/pubsub.editor
הוא סיכון טוב (קל ולא רחב מדי), אבל אולי תרצו להשתמש בשפה הרשאות Pub/Sub.
יצירת נושא
כדי ליצור נושא, עליך להירשם לממשק ה-API למפיצים
באמצעות
השיטה resellernotify.register
.
השיטה 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
שוב.
שלילת הגישה לחשבון שירות
דרך ה-API למפיצים אפשר גם לבטל את הרישום של חשבונות שירות לפי
באמצעות נקודת הקצה resellernotify.unregister
:
POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/unregister
{
"serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}
הרשמה לנושא
אחרי שיוצרים את הנושא Pub/Sub, צריך להגדיר את האופן שבו האפליקציה משתמש באירועי השינוי שלכם. בחר אחת מהאפשרויות הבאות:
- דחיפת מינוי: אתם מספקים קריאה חוזרת (callback) מסוג
POST
של HTTP. שימושים ב-Pub/Sub הקריאה החוזרת (callback) הזו כדי להודיע לאפליקציה שלך על אירועים חדשים. - Pull subscription: האפליקציה שולחת מדי פעם קריאת 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 depended 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 רגילה.SUBSCRIPTION_DOWNGRADE
: המק"ט של המינוי שודרג לאחור. לדוגמה, המינוי שודרג לאחור מ-Google Workspace Business Standard ל- Business Starter.LICENSE_ASSIGNMENT_CHANGED
: רישיון הוקצה לרישיון או בוטל משתמש. אפשר להשתמש באירוע הזה כדי לעקוב אחרי שינויים בספירת העמדות של אנשים מינויים גמישים.
סיבות לביטול המינוי
הסיבה לביטול המינוי תאוכלס כשהערך בשדה event_type
הוא
SUBSCRIPTION_CANCELLED
. סיבות אפשריות לביטול:
TRANSFERRED_OUT
: הלקוח עבר לחיוב ישיר או אל ממפיץ אחר.PURCHASE_OF_SUBSUMING_SKU
: הלקוח שדרג למק"ט מבטל אחר. לדוגמה, אם לקוח עם Google Workspace Business ב-Google Workspace Business Plus, ב-Google Workspace ובמהדורת Starter משודרגים, המינוי ל-Vault מומש כי הוא כלול עם Google Workspace Business Plus.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
בכל המינויים שהשתנו כדי למשוך את
במצב הנוכחי.