Android पर डिवाइस समूहों को संदेश भेजें

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

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

डिवाइस समूहों का प्रबंधन करना

किसी डिवाइस समूह को संदेश भेजने से पहले, आपको यह करना होगा:

  1. प्रत्येक डिवाइस के लिए पंजीकरण टोकन प्राप्त करें जिसे आप समूह में जोड़ना चाहते हैं।

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

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

ऐप सर्वर पर डिवाइस समूहों का प्रबंधन करना

एक उपकरण समूह बनाना

डिवाइस समूह बनाने के लिए, एक POST अनुरोध भेजें जो समूह के लिए एक नाम और उपकरणों के लिए पंजीकरण टोकन की एक सूची प्रदान करता है। FCM एक नई notification_key लौटाता है जो डिवाइस समूह का प्रतिनिधित्व करती है।

HTTP पोस्ट अनुरोध

निम्नलिखित जैसा अनुरोध 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 सहेजें।

अधिसूचना कुंजी पुनर्प्राप्त करना

यदि आपको किसी मौजूदा अधिसूचना कुंजी को पुनः प्राप्त करने की आवश्यकता है, तो GET अनुरोध में 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 अनुरोध के लिए, सर्वर एक अद्वितीय एन्कोडेड स्ट्रिंग लौटाता है। हालाँकि प्रत्येक स्ट्रिंग एक अलग कुंजी प्रतीत हो सकती है, यह वास्तव में एक वैध `अधिसूचना_कुंजी` मान है।

डिवाइस समूह से डिवाइस जोड़ना और हटाना

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

HTTP पोस्ट अनुरोध

उदाहरण के लिए, पंजीकरण टोकन 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 ऑपरेशन को छोड़कर, string डिवाइस समूह का विशिष्ट पहचानकर्ता. यह मान एक सफल create ऑपरेशन के लिए प्रतिक्रिया में लौटाया जाता है, और डिवाइस समूह पर सभी बाद के संचालन के लिए आवश्यक है।
registration_ids आवश्यक, तारों की सरणी जोड़ने या हटाने के लिए डिवाइस टोकन। यदि आप डिवाइस समूह से सभी मौजूदा पंजीकरण टोकन हटाते हैं, तो एफसीएम डिवाइस समूह को हटा देता है।

डिवाइस समूहों को संदेश भेजना

डिवाइस समूहों को संदेश भेजने के लिए, HTTP v1 API का उपयोग करें। यदि आप वर्तमान में HTTP या XMPP के लिए अप्रचलित लीगेसी सेंड API, या लीगेसी प्रोटोकॉल के आधार पर Node.js के लिए फायरबेस एडमिन SDK के किसी पुराने संस्करण का उपयोग करके डिवाइस समूहों को भेज रहे हैं, तो हम दृढ़ता से अनुशंसा करते हैं कि आप HTTP v1 पर माइग्रेट करें जल्द से जल्द अवसर पर एपीआई । जून 2024 में लीगेसी सेंड एपीआई अक्षम कर दी जाएगी और हटा दी जाएगी।

किसी डिवाइस समूह में संदेश भेजना किसी व्यक्तिगत डिवाइस पर संदेश भेजने के समान है, अनुरोध भेजने को अधिकृत करने के लिए उसी विधि का उपयोग किया जाता है। token फ़ील्ड को समूह अधिसूचना कुंजी पर सेट करें:

आराम

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 -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