डिवाइस ग्रुप मैसेजिंग की सुविधा की मदद से, एक ही ग्रुप में कई डिवाइस जोड़े जा सकते हैं. यह विषय के हिसाब से मैसेज करने की सुविधा जैसा ही है. हालांकि, इसमें पुष्टि करने की सुविधा शामिल होती है, ताकि यह पक्का किया जा सके कि ग्रुप की सदस्यता सिर्फ़ आपके सर्वर मैनेज करते हैं. उदाहरण के लिए, अगर आपको अलग-अलग फ़ोन मॉडल पर अलग-अलग मैसेज भेजने हैं, तो आपके सर्वर सही ग्रुप में रजिस्ट्रेशन जोड़/हटा सकते हैं और हर ग्रुप को सही मैसेज भेज सकते हैं. डिवाइस ग्रुप मैसेजिंग, विषय के हिसाब से मैसेज करने की सुविधा से अलग होती है. इसमें डिवाइस ग्रुप को सीधे तौर पर ऐप्लिकेशन में मैनेज करने के बजाय, सर्वर से मैनेज किया जाता है.
सूचना कुंजी के लिए, ज़्यादा से ज़्यादा 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
को सेव करें.
सूचना कुंजी वापस पाना
अगर आपको किसी मौजूदा सूचना कुंजी को वापस लाना है, तो जीईटी अनुरोध में 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 अनुरोध भेजें. साथ ही, डिवाइस जोड़ने या हटाने के लिए रजिस्ट्रेशन टोकन दें.
एचटीटीपी पोस्ट अनुरोध
उदाहरण के लिए, bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
रजिस्ट्रेशन टोकन वाले डिवाइस को appUser-Chris
में जोड़ने के लिए, यह अनुरोध भेजें:
{
"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 उस डिवाइस ग्रुप को मिटा देता है. |
डिवाइस ग्रुप को मैसेज भेजना
डिवाइस ग्रुप को मैसेज भेजने के लिए, एचटीटीपी v1 API का इस्तेमाल करें. अगर फ़िलहाल, एचटीटीपी या एक्सएमपीपी के लिए, इस्तेमाल नहीं किए जा रहे लेगसी सेंड एपीआई का इस्तेमाल करके डिवाइस ग्रुप को मैसेज भेजे जा रहे हैं या लेगसी प्रोटोकॉल के आधार पर, Node.js के लिए Firebase Admin SDK के किसी पुराने वर्शन का इस्तेमाल किया जा रहा है, तो हमारा सुझाव है कि आप जल्द से जल्द एचटीटीपी v1 एपीआई पर माइग्रेट करें. ईमेल भेजने के लिए इस्तेमाल होने वाले लेगसी एपीआई, जून 2024 में बंद कर दिए जाएंगे और हटा दिए जाएंगे.
किसी डिवाइस ग्रुप को मैसेज भेजना, किसी एक डिवाइस को मैसेज भेजने जैसा ही है. मैसेज भेजने के अनुरोधों को अनुमति देने के लिए, एक ही तरीके का इस्तेमाल किया जाता है. 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