পুশ বিজ্ঞপ্তি

এই পৃষ্ঠাটি রিসেলার API-এর মাধ্যমে পুশ বিজ্ঞপ্তিগুলি কীভাবে ব্যবহার করবেন তা বর্ণনা করে।

সংক্ষিপ্ত বিবরণ

রিসেলার API Google Workspace সাবস্ক্রিপশন ইভেন্ট সম্পর্কে পুশ বিজ্ঞপ্তি প্রদানের জন্য Pub/Sub API ব্যবহার করে। উদাহরণস্বরূপ, গ্রাহক সাবস্ক্রিপশনের স্থিতি পরিবর্তন হলে বিজ্ঞপ্তি পাওয়ার জন্য আপনি পুশ বিজ্ঞপ্তি সেট আপ করতে পারেন।

পূর্বশর্ত

  • আপনার গুগল ক্লাউড প্রোজেক্টের জন্য পাব/সাব এপিআই সক্ষম করুন।
  • আপনার ক্লাউড প্রোজেক্টে আপনার পরিষেবা অ্যাকাউন্টে Pub/Sub IAM ভূমিকা প্রদান করুন। roles/pubsub.editor ভূমিকা প্রদান করা বাঞ্ছনীয়, তবে আপনি আরও নির্দিষ্ট Pub/Sub অনুমতি ব্যবহার করতে পারেন।

একটি বিষয় তৈরি করুন

একটি বিষয় তৈরি করতে, resellernotify.register পদ্ধতি ব্যবহার করে Reseller API-এ নিবন্ধন করুন। এই পদ্ধতিতে একটি পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা একটি প্যারামিটার হিসেবে ব্যবহৃত হয়। শুধুমাত্র এই পদ্ধতি দ্বারা অনুমোদিত পরিষেবা অ্যাকাউন্টগুলিই আপনার বিষয়ে সাবস্ক্রাইব করতে পারবে।

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

একটি সফল প্রতিক্রিয়া একটি HTTP 200 স্ট্যাটাস কোড এবং আপনার Pub/Sub বিষয়ের নাম সম্বলিত একটি JSON প্রতিক্রিয়া প্রদান করে।

উদাহরণ প্রতিক্রিয়া:

{
  "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"
}

একটি বিষয়ে সাবস্ক্রাইব করুন

পাব/সাব টপিক তৈরি করার পর, আপনার অ্যাপ্লিকেশন পরিবর্তন ইভেন্টগুলি কীভাবে ব্যবহার করবে তা সেট করুন। নিম্নলিখিতগুলির মধ্যে একটি বেছে নিন:

  • পুশ সাবস্ক্রিপশন : আপনি একটি HTTP POST কলব্যাক সরবরাহ করেন। Pub/Sub এই কলব্যাকটি ব্যবহার করে আপনার অ্যাপ্লিকেশনকে নতুন ইভেন্ট সম্পর্কে অবহিত করে।
  • সাবস্ক্রিপশন টানুন : আপনার অ্যাপ্লিকেশনটি সারিবদ্ধ পরিবর্তনগুলি পেতে পর্যায়ক্রমে একটি 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 : আপনার গুগল ক্লাউড প্রকল্প।
  • SUBSCRIPTION_NAME : আপনার সাবস্ক্রিপশনের জন্য একটি শনাক্তকারী নাম।
  • TOPIC_NAME : আপনার পূর্বে তৈরি পাব/সাব বিষয়।
  • PUSH_NOTIFICATION_ENDPOINT : আপনার পুশ নোটিফিকেশন হ্যান্ডলারের এন্ডপয়েন্ট।

একটি সফল প্রতিক্রিয়া একটি HTTP 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 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 : সাবস্ক্রিপশন SKU আপগ্রেড করা হয়েছে। উদাহরণ: Google Workspace Business Starter থেকে Business Standard এ।
  • SUBSCRIPTION_DOWNGRADE : সাবস্ক্রিপশন SKU ডাউনগ্রেড করা হয়েছে। উদাহরণ: Google Workspace Business Standard থেকে Business Starter.
  • LICENSE_ASSIGNMENT_CHANGED : লাইসেন্স বরাদ্দ করা হয়েছে অথবা বাতিল করা হয়েছে। নমনীয় সাবস্ক্রিপশনের জন্য আসন সংখ্যার পরিবর্তন ট্র্যাক করতে ব্যবহার করুন।

সাবস্ক্রিপশন বাতিলের কারণ

event_type SUBSCRIPTION_CANCELLED হলে বাতিলকরণের কারণটি পূরণ করা হয়। সম্ভাব্য কারণগুলি:

  • TRANSFERRED_OUT : গ্রাহক সরাসরি বিলিং বা অন্য কোনও রিসেলারের কাছে স্থানান্তরিত হয়েছেন।
  • PURCHASE_OF_SUBSUMING_SKU : গ্রাহক এমন একটি SKU-তে আপগ্রেড করেছেন যা অন্য একটি 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-এর অভ্যন্তরীণ কারণে, যেমন অপব্যবহারের জন্য সাসপেন্ড করা হয়েছে।

প্রকাশক/উপ সীমাবদ্ধতা

পুশ নোটিফিকেশন অর্ডারিং সবসময় ধারাবাহিকভাবে করা হয় না। বার্তা একাধিকবার ডেলিভারি করা হতে পারে অথবা একেবারেই নাও হতে পারে। বর্তমান অবস্থা দেখতে আমরা reseller.subscriptions.get এ পরিবর্তিত সাবস্ক্রিপশন ব্যবহার করার পরামর্শ দিচ্ছি।