पुश नोटिफ़िकेशन

खास जानकारी

Reseller API, Pub/Sub API का इस्तेमाल करके, Google Workspace के अलग-अलग सदस्यता इवेंट के बारे में पुश नोटिफ़िकेशन भेजता है. उदाहरण के लिए, पुश नोटिफ़िकेशन सेट अप किए जा सकते हैं. इससे आपको तब सूचना मिलेगी, जब आपके ग्राहकों की सदस्यता की स्थितियां बदलेंगी.

ज़रूरी शर्तें

  • अपने Google Cloud प्रोजेक्ट के लिए, Pub/Sub API चालू करें.
  • अपने Cloud प्रोजेक्ट में, अपने सेवा खाते को Pub/Sub IAM की भूमिकाएं असाइन करें. roles/pubsub.editor की भूमिका असाइन करना एक अच्छा विकल्प है. यह आसान है और इसमें ज़्यादा अनुमतियां शामिल नहीं हैं. हालांकि, आपको Pub/Sub की ज़्यादा खास अनुमतियां इस्तेमाल करनी पड़ सकती हैं.

कोई विषय बनाना

कोई विषय बनाने के लिए, आपको Reseller API के साथ रजिस्टर करना होगा. इसके लिए, resellernotify.register तरीके का इस्तेमाल करें. resellernotify.register वाला तरीका, सेवा खाते के ईमेल पते को पैरामीटर के तौर पर लेता है. इस तरीके से पुष्टि किए गए सेवा खाते ही, आपके बनाए गए नए विषय की सदस्यता ले सकते हैं.

POST https://reseller.googleapis.com/apps/reseller/v1/resellernotify/register
{
  "serviceAccountEmailAddress": "reseller@reseller-project.iam.gserviceaccount.com"
}

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड और 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 विषय बनाने के बाद, आपको यह सेट अप करना होगा कि आपका ऐप्लिकेशन, बदलाव वाले इवेंट का इस्तेमाल कैसे करेगा. नीचे से कोई एक विकल्प चुनें:

  • पुश सदस्यता: आपको एचटीटीपी POST कॉलबैक देना होगा. Pub/Sub इस कॉलबैक का इस्तेमाल करके, आपके ऐप्लिकेशन को नए इवेंट के बारे में सूचना देता है.
  • पुल सदस्यता: आपका ऐप्लिकेशन, समय-समय पर एचटीटीपी कॉल करता है, ताकि सभी बदलावों को क्रम से लागू किया जा सके.

किसी विषय की सदस्यता लेने के अनुरोध का उदाहरण यहां दिया गया है:

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: पुश नोटिफ़िकेशन हैंडलर एंडपॉइंट.

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड मिलता है. यहां जवाब का एक उदाहरण दिया गया है:

{
  "name": "projects/PROJECT/subscriptions/SUBSCRIPTION_NAME",
  "topic": "TOPIC_NAME",
  "pushConfig": {
    "pushEndpoint": "PUSH_NOTIFICATION_ENDPOINT"
    },
  "ackDeadlineSeconds": 10
}

सूचना के फ़ॉर्मैट

Pub/Sub सूचना का एक उदाहरण यहां दिया गया है. मैसेज का डेटा, base64-एन्कोड की गई JSON स्ट्रिंग के तौर पर ट्रांसमिट किया जाता है.

{
  "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 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 और Google Vault का इस्तेमाल करने वाला कोई ग्राहक, Google Workspace Business Plus पर अपग्रेड करता है, तो Vault की सदस्यता को शामिल कर लिया जाता है. ऐसा इसलिए, क्योंकि यह Google Workspace Business Plus में शामिल है.
  • RESELLER_INITIATED: रिसेलर ने सदस्यता रद्द कर दी है.
  • OTHER: सदस्यता को रद्द करने की वजह, सूची में दी गई वजहों से अलग है.

सदस्यता निलंबित करने की वजहें

सदस्यता के निलंबन की वजह तब दिखती है, जब event_type SUBSCRIPTION_SUSPENDED हो. खाता निलंबित होने की ये वजहें हो सकती हैं:

  • PENDING_TOS_ACCEPTANCE: ग्राहक ने Google Workspace Resold की सेवा की शर्तें स्वीकार नहीं की हैं और वह लॉग इन नहीं है.
  • RENEWAL_WITH_TYPE_CANCEL: ग्राहक की प्रतिबद्धता खत्म हो गई है और अवधि खत्म होने पर उसकी सेवा रद्द कर दी गई है.
  • RESELLER_INITIATED: रिसेलर ने सदस्यता को मैन्युअल तरीके से निलंबित कर दिया है.
  • TRIAL_ENDED: ग्राहक के लिए बिना किसी शुल्क आज़माने की अवधि खत्म हो गई है. साथ ही, ग्राहक ने बिना किसी शुल्क आज़माने वाला प्लान नहीं चुना है.
  • OTHER: Google की किसी नीति का उल्लंघन करने की वजह से, ग्राहक का खाता निलंबित कर दिया गया है. उदाहरण के लिए, गलत इस्तेमाल.

Pub/Sub से जुड़ी सीमाएं

पुश नोटिफ़िकेशन के क्रम की कोई गारंटी नहीं है. ऐसा हो सकता है कि मैसेज कई बार डिलीवर हो जाएं. इसके अलावा, कुछ मामलों में ऐसा भी हो सकता है कि मैसेज डिलीवर न हों. हमारा सुझाव है कि बदली गई सभी सदस्यताओं के लिए, reseller.subscriptions.get का इस्तेमाल करें, ताकि मौजूदा स्थिति का पता चल सके.