डिवाइस ग्रुप में मैसेज भेजें

डिवाइस ग्रुप मैसेजिंग की सुविधा से, एक ही ग्रुप में कई डिवाइस जोड़े जा सकते हैं. यह विषय के हिसाब से मैसेज भेजने की सुविधा जैसा ही है. हालांकि, इसमें पुष्टि करने की सुविधा शामिल है, ताकि यह पक्का किया जा सके कि ग्रुप की सदस्यता को सिर्फ़ आपके सर्वर मैनेज करें.

उदाहरण के लिए, अगर आपको अलग-अलग फ़ोन मॉडल के लिए अलग-अलग मैसेज भेजने हैं, तो आपके सर्वर सही ग्रुप में रजिस्ट्रेशन जोड़ या हटा सकते हैं. साथ ही, हर ग्रुप को सही मैसेज भेज सकते हैं. डिवाइस ग्रुप मैसेजिंग, विषय के हिसाब से मैसेज भेजने से अलग है. इसमें डिवाइस ग्रुप को सीधे आपके ऐप्लिकेशन के बजाय, आपके सर्वर से मैनेज किया जाता है.

किसी सूचना कुंजी के लिए, ज़्यादा से ज़्यादा 20 सदस्यों को अनुमति दी जा सकती है.

डिवाइस ग्रुप मैनेज करना

डिवाइस ग्रुप को मैसेज भेजने से पहले, आपको ये काम करने होंगे:

  1. आपको जिस भी डिवाइस को ग्रुप में जोड़ना है उसके लिए रजिस्ट्रेशन टोकन हासिल करें.
  2. 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
{}

किसी सूचना कुंजी के नाम के लिए किए गए हर जीईटी अनुरोध पर, सर्वर एक यूनीक एन्कोड की गई स्ट्रिंग दिखाता है. हालांकि, हर स्ट्रिंग अलग कुंजी के तौर पर दिख सकती है, लेकिन यह असल में एक मान्य 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