ডিভাইস গ্রুপে বার্তা পাঠান

ডিভাইস গ্রুপ মেসেজিং আপনাকে একটি গ্রুপে একাধিক ডিভাইস যুক্ত করার সুযোগ দেয়। এটি টপিক মেসেজিং-এর মতোই, তবে এতে অথেনটিকেশন অন্তর্ভুক্ত রয়েছে, যা নিশ্চিত করে যে গ্রুপের সদস্যপদ শুধুমাত্র আপনার সার্ভার দ্বারাই পরিচালিত হয়।

উদাহরণস্বরূপ, আপনি যদি বিভিন্ন ফোন মডেলে ভিন্ন ভিন্ন বার্তা পাঠাতে চান, তাহলে আপনার সার্ভারগুলো উপযুক্ত গ্রুপগুলোতে রেজিস্ট্রেশন যোগ বা অপসারণ করতে পারে এবং প্রতিটি গ্রুপে যথাযথ বার্তাটি পাঠাতে পারে। ডিভাইস গ্রুপ মেসেজিং টপিক মেসেজিং থেকে ভিন্ন, কারণ এতে সরাসরি আপনার অ্যাপ্লিকেশনের পরিবর্তে সার্ভার থেকে ডিভাইস গ্রুপগুলো পরিচালনা করা হয়।

একটি নোটিফিকেশন কী-এর জন্য অনুমোদিত সর্বোচ্চ সদস্য সংখ্যা হলো ২০।

ডিভাইস গ্রুপগুলি পরিচালনা করুন

একটি ডিভাইস গ্রুপে বার্তা পাঠানোর আগে, আপনাকে অবশ্যই:

  1. গ্রুপে যোগ করতে চান এমন প্রতিটি ডিভাইসের জন্য রেজিস্ট্রেশন টোকেন সংগ্রহ করুন।
  2. notification_key তৈরি করুন, যা একটি নির্দিষ্ট গ্রুপকে (সাধারণত একজন ব্যবহারকারী) সেই গ্রুপের সাথে যুক্ত সমস্ত রেজিস্ট্রেশন টোকেনের সাথে ম্যাপ করার মাধ্যমে ডিভাইস গ্রুপটিকে শনাক্ত করে। আপনি অ্যাপ সার্ভারে নোটিফিকেশন কী তৈরি করতে পারেন।

ডিভাইস গ্রুপের মৌলিক ব্যবস্থাপনা — যেমন গ্রুপ তৈরি ও অপসারণ, এবং ডিভাইস যোগ বা অপসারণ — HTTP v1 API ব্যবহার করে সম্পন্ন করা হয়, যেখানে প্রেরণের অনুরোধ অনুমোদনের জন্য স্বল্পস্থায়ী টোকেন ব্যবহৃত হয়। সমর্থিত কী-গুলোর তালিকার জন্য ‘ডিভাইস গ্রুপ ম্যানেজমেন্ট কী’ দেখুন।

অ্যাপ সার্ভারে ডিভাইস গ্রুপগুলি পরিচালনা করুন

একটি ডিভাইস গ্রুপ তৈরি করুন

একটি ডিভাইস গ্রুপ তৈরি করতে, গ্রুপের জন্য একটি নাম এবং ডিভাইসগুলির রেজিস্ট্রেশন টোকেনের একটি তালিকা সহ একটি POST অনুরোধ পাঠান। FCM একটি নতুন notification_key ফেরত দেয় যা ডিভাইস গ্রুপটিকে প্রতিনিধিত্ব করে।

HTTP পোস্ট অনুরোধ

https://fcm.googleapis.com/fcm/notification -এ নিম্নলিখিতের মতো একটি অনুরোধ পাঠান:

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
                        "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...",
                        ... ]
}

notification_key_name হলো একটি নাম বা শনাক্তকারী (যেমন, এটি একটি ইউজারনেম হতে পারে) যা একটি নির্দিষ্ট গ্রুপের জন্য অনন্য। notification_key_name এবং notification_key রেজিস্ট্রেশন টোকেনগুলোর একটি গ্রুপের জন্য অনন্য। যদি একই প্রেরক আইডির জন্য আপনার একাধিক ক্লায়েন্ট অ্যাপ থাকে, তবে প্রতিটি ক্লায়েন্ট অ্যাপের জন্য notification_key_name অনন্য হওয়া গুরুত্বপূর্ণ। এটি নিশ্চিত করে যে বার্তাগুলো শুধুমাত্র উদ্দিষ্ট টার্গেট অ্যাপেই যায়।

প্রতিক্রিয়া বিন্যাস

একটি সফল অনুরোধ নিম্নলিখিতের মতো একটি notification_key ফেরত দেয়:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

পরবর্তী কার্যক্রমে ব্যবহারের জন্য notification_key এবং সংশ্লিষ্ট notification_key_name সংরক্ষণ করুন।

একটি নোটিফিকেশন কী পুনরুদ্ধার করা হচ্ছে

বিদ্যমান কোনো নোটিফিকেশন কী পুনরুদ্ধার করার প্রয়োজন হলে, দেখানো অনুযায়ী একটি GET অনুরোধে notification_key_name ব্যবহার করুন:

https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}

একটি নির্দিষ্ট নোটিফিকেশন কী নামের জন্য প্রতিটি GET অনুরোধের ক্ষেত্রে, সার্ভার একটি অনন্য এনকোডেড স্ট্রিং ফেরত দেয়। যদিও প্রতিটি স্ট্রিংকে ভিন্ন কী বলে মনে হতে পারে, এটি আসলে একটি বৈধ notification_key ভ্যালু।

একটি ডিভাইস গ্রুপে ডিভাইস যোগ করা এবং অপসারণ করা

বিদ্যমান কোনো গ্রুপে ডিভাইস যোগ করতে বা সরাতে, operation প্যারামিটার হিসেবে ' add ' বা ' remove সেট করে একটি POST রিকোয়েস্ট পাঠান এবং যোগ বা অপসারণের জন্য রেজিস্ট্রেশন টোকেনগুলো প্রদান করুন।

HTTP পোস্ট অনুরোধ

উদাহরণস্বরূপ, appUser-Chrisbk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... রেজিস্ট্রেশন টোকেনসহ একটি ডিভাইস যোগ করতে, আপনাকে এই অনুরোধটি পাঠাতে হবে:

https://fcm.googleapis.com/fcm/notification
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
প্রতিক্রিয়া বিন্যাস

ডিভাইস যোগ বা অপসারণ করার একটি সফল অনুরোধ নিম্নলিখিতের মতো একটি notification_key ফেরত দেয়:

{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }

ডিভাইস গ্রুপ পরিচালনার কীগুলি

নিচের সারণিতে ডিভাইস গ্রুপ তৈরি এবং সদস্য যোগ ও অপসারণ করার জন্য কী-গুলো তালিকাভুক্ত করা হয়েছে।

প্যারামিটার ব্যবহার বর্ণনা
operation প্রয়োজনীয়, স্ট্রিং যে অপারেশনটি চালাতে হবে। বৈধ মানগুলো হলো create , add এবং remove
notification_key_name প্রয়োজনীয়, স্ট্রিং তৈরি বা পরিবর্তন করার জন্য ডিভাইস গ্রুপের ব্যবহারকারী-নির্ধারিত নাম।
notification_key আবশ্যক ( create অপারেশন, স্ট্রিং ব্যতীত) ডিভাইস গ্রুপের অনন্য শনাক্তকারী। একটি সফল create অপারেশনের রেসপন্সে এই মানটি ফেরত দেওয়া হয় এবং ডিভাইস গ্রুপের উপর পরবর্তী সকল অপারেশনের জন্য এটি আবশ্যক।
registration_ids প্রয়োজনীয়, স্ট্রিং-এর অ্যারে ডিভাইস টোকেনগুলো যোগ বা অপসারণ করতে হবে। আপনি যদি একটি ডিভাইস গ্রুপ থেকে বিদ্যমান সমস্ত রেজিস্ট্রেশন টোকেন অপসারণ করেন, তাহলে FCM ডিভাইস গ্রুপটি মুছে ফেলে।

ডিভাইস গ্রুপে বার্তা পাঠান

একটি ডিভাইস গ্রুপে মেসেজ পাঠানো অনেকটা কোনো একটি ডিভাইসে মেসেজ পাঠানোর মতোই, এবং পাঠানোর অনুরোধ অনুমোদন করার জন্য একই পদ্ধতি ব্যবহার করা হয়। token ফিল্ডটিকে গ্রুপ নোটিফিকেশন কী-তে সেট করুন:

বিশ্রাম

POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
   "message":{
      "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
      "data":{
        "hello": "This is a Firebase Cloud Messaging device group message!"
      }
   }
}

cURL কমান্ড

curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
   "data":{
     "hello": "This is a Firebase Cloud Messaging device group message!"
   },
   "token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send