वेब/JavaScript पर, डिवाइस ग्रुप को मैसेज भेजें

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

सूचना कुंजी वाले सदस्यों की संख्या ज़्यादा से ज़्यादा 20 हो सकती है.

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

किसी डिवाइस ग्रुप को मैसेज भेजने से पहले, ज़रूरी है कि:

  1. हर उस डिवाइस के लिए रजिस्ट्रेशन टोकन पाएं जिसे आपको ग्रुप में जोड़ना है.

  2. notification_key बनाएं, जो किसी खास ग्रुप (आम तौर पर एक उपयोगकर्ता) को ग्रुप के सभी रजिस्ट्रेशन टोकन के साथ मैप करके, डिवाइस ग्रुप की पहचान करता है. ऐप्लिकेशन सर्वर पर सूचना कुंजियां बनाई जा सकती हैं.

डिवाइस ग्रुप बनाने और हटाने के साथ-साथ ग्रुप बनाने और हटाने के साथ-साथ उन्हें जोड़ने या हटाने का बुनियादी मैनेजमेंट, एचटीटीपी v1 API के ज़रिए किया जाता है. इसके लिए, अनुरोध भेजने की अनुमति देने के लिए कम समय वाले टोकन का इस्तेमाल किया जाता है. काम करने वाली कुंजियों की सूची के लिए डिवाइस ग्रुप मैनेजमेंट की देखें.

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

डिवाइस ग्रुप बनाया जा रहा है

डिवाइस ग्रुप बनाने के लिए, पोस्ट करने का एक अनुरोध भेजें, जिसमें ग्रुप का नाम और डिवाइसों के लिए रजिस्ट्रेशन टोकन की सूची दी गई हो. 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
{}

सूचना कुंजी के किसी नाम के लिए, हर जीईटी अनुरोध के लिए, सर्वर कोड में बदली गई एक यूनीक स्ट्रिंग दिखाता है. हालांकि, हर स्ट्रिंग एक अलग कुंजी के तौर पर दिख सकती है, लेकिन असल में यह एक मान्य `सूचना_की` वैल्यू है.

डिवाइस ग्रुप में डिवाइसों को जोड़ना और हटाना

किसी मौजूदा ग्रुप में डिवाइसों को जोड़ने या हटाने के लिए, operation पैरामीटर के साथ add या remove पर सेट पोस्ट करने का अनुरोध भेजें. साथ ही, जोड़ने या हटाने के लिए रजिस्ट्रेशन टोकन दें.

एचटीटीपी पोस्ट अनुरोध

उदाहरण के लिए, appUser-Chris में bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... रजिस्ट्रेशन टोकन वाले किसी डिवाइस को जोड़ने के लिए, आपको यह अनुरोध भेजना होगा:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

जवाब का फ़ॉर्मैट

किसी डिवाइस को जोड़ने या हटाने के अनुरोध पर, इस तरह का notification_key दिखता है:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

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

नीचे दी गई टेबल में डिवाइस ग्रुप बनाने के साथ-साथ सदस्यों को जोड़ने और हटाने के लिए कुंजियां दी गई हैं.

टेबल 10. डिवाइस ग्रुप मैनेज करने की कुंजियां.

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी जानकारी
operation ज़रूरी स्ट्रिंग चलाने के लिए मान्य वैल्यू.ये वैल्यू create, add, और remove हैं.
notification_key_name ज़रूरी स्ट्रिंग डिवाइस ग्रुप बनाने या उसमें बदलाव करने के लिए, उपयोगकर्ता का तय किया गया नाम.
notification_key ज़रूरी है (create ऑपरेशन, स्ट्रिंग को छोड़कर डिवाइस ग्रुप का यूनीक आइडेंटिफ़ायर. यह वैल्यू, create की सही कार्रवाई के रिस्पॉन्स में मिलती है. इसकी मदद से, डिवाइस ग्रुप पर बाद में की जाने वाली सभी कार्रवाइयों के लिए इसकी ज़रूरत पड़ती है.
registration_ids स्ट्रिंग का कलेक्शन ज़रूरी है जोड़ने या हटाने के लिए, डिवाइस के टोकन. अगर किसी डिवाइस ग्रुप से सभी मौजूदा रजिस्ट्रेशन टोकन हटाए जाते हैं, तो FCM डिवाइस ग्रुप को मिटा देता है.

डिवाइस ग्रुप को डाउनस्ट्रीम मैसेज भेजे जा रहे हैं

डिवाइस ग्रुप को मैसेज भेजने के लिए, एचटीटीपी v1 एपीआई का इस्तेमाल करें. अगर एचटीटीपी या XMPP या लेगसी प्रोटोकॉल पर आधारित Firebase के लिए Node.js के लिए Firebase एडमिन 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