डिवाइस ग्रुप मैसेजिंग की सुविधा से, एक ही ग्रुप में कई डिवाइस जोड़े जा सकते हैं. यह विषय के हिसाब से मैसेज भेजने की सुविधा जैसा ही है. हालांकि, इसमें पुष्टि करने की सुविधा शामिल है, ताकि यह पक्का किया जा सके कि ग्रुप की सदस्यता को सिर्फ़ आपके सर्वर मैनेज करें.
उदाहरण के लिए, अगर आपको फ़ोन के अलग-अलग मॉडल पर अलग-अलग मैसेज भेजने हैं, तो आपके सर्वर सही ग्रुप में रजिस्ट्रेशन जोड़ सकते हैं या हटा सकते हैं. साथ ही, हर ग्रुप को सही मैसेज भेज सकते हैं. डिवाइस ग्रुप मैसेजिंग, विषय के हिसाब से मैसेज भेजने से अलग है. इसमें डिवाइस ग्रुप को सीधे आपके ऐप्लिकेशन के बजाय, आपके सर्वर से मैनेज किया जाता है.
किसी सूचना कुंजी के लिए, ज़्यादा से ज़्यादा 20 सदस्यों को अनुमति दी जा सकती है.
डिवाइस ग्रुप मैनेज करना
किसी डिवाइस ग्रुप को मैसेज भेजने से पहले, आपको ये काम करने होंगे:
- आपको जिस भी डिवाइस को ग्रुप में जोड़ना है उसके लिए रजिस्ट्रेशन टोकन हासिल करें.
notification_keyबनाएं. यह किसी खास ग्रुप (आम तौर पर, कोई उपयोगकर्ता) को ग्रुप से जुड़े सभी रजिस्ट्रेशन टोकन से मैप करके, डिवाइस ग्रुप की पहचान करता है. ऐप्लिकेशन सर्वर पर सूचना कुंजियां बनाई जा सकती हैं.
डिवाइस ग्रुप को मैनेज करने के बुनियादी काम, जैसे कि ग्रुप बनाना और हटाना, और डिवाइसों को जोड़ना या हटाना, एचटीटीपी v1 एपीआई का इस्तेमाल करके किए जाते हैं. इसके लिए, कम समय के लिए मान्य टोकन का इस्तेमाल किया जाता है, ताकि मैसेज भेजने के अनुरोधों को अनुमति दी जा सके. इस्तेमाल की जा सकने वाली कुंजियों की सूची देखने के लिए, डिवाइस ग्रुप मैनेजमेंट की कुंजियां देखें.
ऐप्लिकेशन सर्वर पर डिवाइस ग्रुप मैनेज करना
डिवाइस ग्रुप बनाना
डिवाइस ग्रुप बनाने के लिए, एक POST अनुरोध भेजें. इसमें ग्रुप का नाम और डिवाइसों के रजिस्ट्रेशन टोकन की सूची शामिल होनी चाहिए. FCM, डिवाइस ग्रुप को दिखाने वाला एक नया notification_key दिखाता है.
एचटीटीपी पोस्ट अनुरोध
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, रजिस्ट्रेशन टोकन के ग्रुप के लिए यूनीक होते हैं. अगर आपके पास एक ही sender ID के लिए कई क्लाइंट ऐप्लिकेशन हैं, तो यह ज़रूरी है कि हर क्लाइंट ऐप्लिकेशन के लिए notification_key_name यूनीक हो.
इससे यह पक्का होता है कि मैसेज सिर्फ़ टारगेट किए गए ऐप्लिकेशन पर जाएं.
जवाब का फ़ॉर्मैट
अनुरोध पूरा होने पर, इस तरह का notification_key दिखता है:
{
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
notification_key और उससे जुड़े notification_key_name को सेव करें, ताकि बाद में होने वाली कार्रवाइयों में इनका इस्तेमाल किया जा सके.
सूचना की कुंजी वापस पाना
अगर आपको किसी मौजूदा सूचना कुंजी को वापस पाना है, तो जीईटी अनुरोध में 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
{}
किसी सूचना कुंजी के नाम के लिए किए गए हर जीईटी अनुरोध के लिए, सर्वर एक यूनीक एन्कोड की गई स्ट्रिंग दिखाता है. हालांकि, हर स्ट्रिंग एक अलग कुंजी की तरह दिख सकती है, लेकिन असल में यह एक मान्य notification_key वैल्यू है.
डिवाइस ग्रुप के लिए FCM टोकन वापस लाए जा रहे हैं
अगर आपको किसी डिवाइस ग्रुप से जुड़े FCM टोकन वापस पाने हैं, तो जीईटी अनुरोध में 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 अनुरोध भेजें. साथ ही, डिवाइसों को जोड़ने या हटाने के लिए रजिस्ट्रेशन टोकन दें.
एचटीटीपी पोस्ट अनुरोध
उदाहरण के लिए, रजिस्ट्रेशन टोकन 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