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

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

सूचना कुंजी के लिए, ज़्यादा से ज़्यादा 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
{}

किसी सूचना कुंजी के नाम के लिए किए गए हर 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"
}

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

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

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

पैरामीटर इस्तेमाल ब्यौरा
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