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

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

একটি বিজ্ঞপ্তি কী-এর জন্য অনুমোদিত সদস্যের সর্বাধিক সংখ্যা হল 20 জন৷

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

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

  1. আপনি গ্রুপে যোগ করতে চান এমন প্রতিটি ডিভাইসের জন্য নিবন্ধন টোকেন পান।

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

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

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

একটি ডিভাইস গ্রুপ তৈরি করা হচ্ছে

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

HTTP POST অনুরোধ

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` মান।

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

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

HTTP POST অনুরোধ

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

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

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

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

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

ডিভাইস গ্রুপ ম্যানেজমেন্ট কী

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

সারণী 10. ডিভাইস গ্রুপ ম্যানেজমেন্ট কী।

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

ডিভাইস গ্রুপে ডাউনস্ট্রিম বার্তা পাঠানো হচ্ছে

ডিভাইস গ্রুপে বার্তা পাঠাতে, HTTP v1 API ব্যবহার করুন। আপনি যদি বর্তমানে HTTP বা XMPP-এর জন্য অপ্রচলিত লিগ্যাসি সেন্ড API ব্যবহার করে ডিভাইস গোষ্ঠীতে পাঠাচ্ছেন, অথবা উত্তরাধিকার প্রোটোকলের উপর ভিত্তি করে Node.js-এর জন্য Firebase অ্যাডমিন SDK- এর পুরনো সংস্করণগুলির যে কোনও একটি ব্যবহার করে, আমরা দৃঢ়ভাবে সুপারিশ করছি যে আপনি HTTP v1-এ স্থানান্তর করুন। যত তাড়াতাড়ি সম্ভব এপিআই । 2024 সালের জুনে লিগ্যাসি সেন্ড এপিআই নিষ্ক্রিয় এবং সরানো হবে।

একটি ডিভাইস গ্রুপে বার্তা পাঠানো একটি পৃথক ডিভাইসে বার্তা পাঠানোর অনুরূপ, একই পদ্ধতি ব্যবহার করে প্রেরণের অনুরোধ অনুমোদন করে ৷ গ্রুপ বিজ্ঞপ্তি কী 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