ডিভাইস গ্রুপ মেসেজিংয়ের মাধ্যমে আপনি একটি গ্রুপে একাধিক ডিভাইস যোগ করতে পারবেন। এটি টপিক মেসেজিংয়ের মতোই, তবে এতে যাচাইকরণ অন্তর্ভুক্ত থাকে যাতে গ্রুপ মেম্বারশিপ শুধুমাত্র আপনার সার্ভার দ্বারা ম্যানেজ করা হয় তা নিশ্চিত করা যায়।
যেমন, আপনি যদি বিভিন্ন ফোন মডেলে আলাদা আলাদা মেসেজ পাঠাতে চান, আপনার সার্ভার উপযুক্ত গ্রুপে রেজিস্ট্রেশন যোগ করতে বা সরাতে এবং প্রতিটি গ্রুপে উপযুক্ত মেসেজ পাঠাতে পারে। ডিভাইস গ্রুপ মেসেজিং, টপিক মেসেজিং থেকে আলাদা, কারণ এতে আপনার অ্যাপ্লিকেশনের মধ্যে সরাসরি ডিভাইস গ্রুপ ম্যানেজ করার পরিবর্তে আপনার সার্ভার থেকে ডিভাইস গ্রুপ ম্যানেজ করা হয়।
একটি বিজ্ঞপ্তি কী-এর জন্য অনুমোদিত সর্বাধিক মেম্বারের সংখ্যা হল ২০।
ডিভাইস গ্রুপ ম্যানেজ করা
ডিভাইস গ্রুপে মেসেজ পাঠানোর আগে, আপনাকে অবশ্যই:
- আপনি গ্রুপে যোগ করতে চান এমন প্রতিটি ডিভাইসের জন্য রেজিস্ট্রেশন টোকেন পান।
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 ভ্যালু।
ডিভাইস গ্রুপের জন্য FCM টোকেন ফিরিয়ে আনা হচ্ছে
ডিভাইস গ্রুপের FCM টোকেন রিট্রিভ করতে চাইলে, GET অনুরোধে
notification_key ব্যবহার করুন, যেমন দেখানো হয়েছে:
https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}
উত্তরটি দেখতে এইরকম:
{
"notification_key_name": "appUser-Chris",
"registration_ids": ["token1", "token2"]
}
ডিভাইস গ্রুপে ডিভাইস যোগ করা ও সরানো
আগে থেকে থাকা গ্রুপে ডিভাইস যোগ করতে বা সরাতে,
operation প্যারামিটার add বা remove হিসেবে সেট করে একটি POST অনুরোধ পাঠান এবং যোগ করা বা সরানোর জন্য রেজিস্ট্রেশন
টোকেন দিন।
HTTP POST অনুরোধ
যেমন, রেজিস্ট্রেশন টোকেন
bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... সহ কোনও ডিভাইসকে appUser-Chris-এ যোগ করতে, আপনাকে
এই অনুরোধ পাঠাতে হবে:
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 ফিল্ডে গ্রুপ বিজ্ঞপ্তি কী সেট করুন:
REST
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