डिवाइस ग्रुप मैसेजिंग की सुविधा की मदद से, एक ग्रुप में कई डिवाइस जोड़े जा सकते हैं. यह विषय के हिसाब से मैसेज भेजने की सुविधा की तरह ही है. हालांकि, इसमें पुष्टि करने की सुविधा शामिल होती है. इससे यह पक्का किया जा सकता है कि ग्रुप की सदस्यता को सिर्फ़ आपके सर्वर मैनेज करें. उदाहरण के लिए, अगर आपको अलग-अलग फ़ोन मॉडल पर अलग-अलग मैसेज भेजने हैं, तो आपके सर्वर, सही ग्रुप में रजिस्ट्रेशन जोड़ सकते हैं या हटा सकते हैं. साथ ही, हर ग्रुप को सही मैसेज भेज सकते हैं. डिवाइस ग्रुप मैसेजिंग, विषय के हिसाब से मैसेजिंग से इस तरह अलग है कि इसमें सीधे तौर पर आपके ऐप्लिकेशन के बजाय, आपके सर्वर से डिवाइस ग्रुप मैनेज किए जाते हैं.
सूचना कुंजी के लिए, ज़्यादा से ज़्यादा 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
, रजिस्ट्रेशन टोकन के ग्रुप के लिए यूनीक होते हैं. अगर आपके पास एक ही सेंडर आईडी के लिए कई क्लाइंट ऐप्लिकेशन हैं, तो यह ज़रूरी है कि हर क्लाइंट ऐप्लिकेशन के लिए 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
वैल्यू है.
किसी डिवाइस ग्रुप में डिवाइसों को जोड़ना और हटाना
किसी मौजूदा ग्रुप में डिवाइस जोड़ने या हटाने के लिए, POST अनुरोध भेजें. इसमें operation
पैरामीटर को add
या remove
पर सेट करें. साथ ही, डिवाइस जोड़ने या हटाने के लिए रजिस्ट्रेशन टोकन दें.
एचटीटीपी पीओएसटी अनुरोध
उदाहरण के लिए, अगर आपको रजिस्ट्रेशन टोकन 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