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

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

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

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

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

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

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

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

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

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

डिवाइस ग्रुप बनाने के लिए, एक 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 पर सेट पोस्ट करने का अनुरोध भेजें. साथ ही, जोड़ने या हटाने के लिए रजिस्ट्रेशन टोकन दें.

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

उदाहरण के लिए, 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"
}

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

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

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

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

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

डिवाइस ग्रुप को मैसेज भेजने के लिए, एचटीटीपी v1 API का इस्तेमाल करें. अगर फ़िलहाल, एचटीटीपी या एक्सएमपीपी के लिए, इस्तेमाल नहीं किए जा रहे लेगसी सेंड एपीआई का इस्तेमाल करके डिवाइस ग्रुप को मैसेज भेजे जा रहे हैं या लेगसी प्रोटोकॉल के आधार पर, Node.js के लिए Firebase Admin SDK के किसी पुराने वर्शन का इस्तेमाल किया जा रहा है, तो हमारा सुझाव है कि आप जल्द से जल्द एचटीटीपी v1 एपीआई पर माइग्रेट करें. लेगसी send API को जून 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

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

क्लाइंट ऐप्लिकेशन, to फ़ील्ड में मौजूद सही सूचना कुंजी पर मैसेज को टारगेट करके, डिवाइस ग्रुप को अपस्ट्रीम मैसेज भेज सकते हैं.

FCM पर किया गया यह कॉल, सूचना कुंजी पर अपस्ट्रीम मैसेज भेजता है.

Firebase.Messaging.Message message;
message.To = notification_key;
message.MessageId = a_unique_message_id;
message.Data["hello"] = "world";
Firebase.Messaging.FirebaseMessaging.Send(message);