फायरबेस क्लाउड मैसेजिंग HTTP प्रोटोकॉल

यह दस्तावेज़ फायरबेस क्लाउड मैसेजिंग के माध्यम से आपके ऐप सर्वर से क्लाइंट ऐप्स तक संदेश भेजने के लिए उपयोग किए जाने वाले HTTP सिंटैक्स के लिए एक संदर्भ प्रदान करता है।

लीगेसी HTTP प्रोटोकॉल का उपयोग करते समय, आपके ऐप सर्वर को सभी HTTP अनुरोधों को इस एंडपॉइंट पर निर्देशित करना होगा:

https://fcm.googleapis.com/fcm/send

उपलब्ध पैरामीटर और विकल्प निम्नलिखित व्यापक श्रेणियों में आते हैं:

डाउनस्ट्रीम संदेश सिंटैक्स

यह अनुभाग डाउनस्ट्रीम संदेश भेजने और फायरबेस क्लाउड मैसेजिंग से HTTP प्रतिक्रियाओं की व्याख्या करने के लिए सिंटैक्स देता है।

डाउनस्ट्रीम HTTP संदेश (JSON)

निम्न तालिका HTTP JSON संदेशों के लिए लक्ष्य, विकल्प और पेलोड सूचीबद्ध करती है।

तालिका 1. डाउनस्ट्रीम HTTP संदेशों (JSON) के लिए लक्ष्य, विकल्प और पेलोड।

पैरामीटर प्रयोग विवरण
लक्ष्यों को
to वैकल्पिक, स्ट्रिंग

यह पैरामीटर संदेश के प्राप्तकर्ता को निर्दिष्ट करता है।

मान एक डिवाइस का पंजीकरण टोकन, एक डिवाइस समूह की अधिसूचना कुंजी, या एक एकल विषय ( /topics/ के साथ उपसर्ग) हो सकता है। एकाधिक विषयों को भेजने के लिए, condition पैरामीटर का उपयोग करें।

registration_ids
वैकल्पिक, तारों की सरणी

यह पैरामीटर एक मल्टीकास्ट संदेश के प्राप्तकर्ता को निर्दिष्ट करता है, एक संदेश एक से अधिक पंजीकरण टोकन पर भेजा जाता है।

मान पंजीकरण टोकन की एक सरणी होनी चाहिए जिसमें मल्टीकास्ट संदेश भेजा जा सके। सरणी में कम से कम 1 और अधिकतम 1000 पंजीकरण टोकन होने चाहिए। किसी एकल डिवाइस पर संदेश भेजने के लिए, to पैरामीटर का उपयोग करें।

मल्टीकास्ट संदेशों को केवल HTTP JSON प्रारूप का उपयोग करने की अनुमति है।

condition वैकल्पिक, स्ट्रिंग

यह पैरामीटर उन स्थितियों की तार्किक अभिव्यक्ति निर्दिष्ट करता है जो संदेश लक्ष्य निर्धारित करते हैं।

समर्थित शर्त: विषय, विषयों में "'आपका विषय'' के रूप में स्वरूपित। यह मान केस-असंवेदनशील है.

समर्थित ऑपरेटर: && , || . प्रति विषय संदेश अधिकतम दो ऑपरेटर समर्थित।

notification_key
पदावनत
वैकल्पिक, स्ट्रिंग

यह पैरामीटर अप्रचलित है. इसके बजाय, संदेश प्राप्तकर्ताओं को निर्दिष्ट करने के लिए to उपयोग करें। एकाधिक डिवाइसों पर संदेश भेजने के तरीके के बारे में अधिक जानकारी के लिए, अपने प्लेटफ़ॉर्म के लिए दस्तावेज़ देखें।

विकल्प
collapse_key वैकल्पिक, स्ट्रिंग

यह पैरामीटर संदेशों के एक समूह की पहचान करता है (उदाहरण के लिए, collapse_key: "Updates Available" ) जिसे संक्षिप्त किया जा सकता है, ताकि डिलीवरी फिर से शुरू होने पर केवल अंतिम संदेश भेजा जा सके। इसका उद्देश्य डिवाइस के वापस ऑनलाइन आने या सक्रिय होने पर एक जैसे कई संदेश भेजने से बचना है।

ध्यान दें कि संदेश किस क्रम में भेजे जाएंगे इसकी कोई गारंटी नहीं है।

ध्यान दें: किसी भी समय अधिकतम 4 अलग-अलग संक्षिप्त कुंजियों की अनुमति है। इसका मतलब है कि एफसीएम एक साथ प्रति क्लाइंट ऐप पर 4 अलग-अलग संदेश स्टोर कर सकता है। यदि आप इस संख्या को पार कर जाते हैं, तो इसकी कोई गारंटी नहीं है कि एफसीएम कौन सी 4 पतन कुंजियाँ रखेगा।

priority वैकल्पिक, स्ट्रिंग

संदेश की प्राथमिकता निर्धारित करता है. मान्य मान "सामान्य" और "उच्च" हैं। Apple प्लेटफ़ॉर्म पर, ये APN की प्राथमिकताएँ 5 और 10 के अनुरूप हैं।

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

जब कोई संदेश उच्च प्राथमिकता के साथ भेजा जाता है, तो उसे तुरंत भेज दिया जाता है, और ऐप एक अधिसूचना प्रदर्शित कर सकता है।

content_available वैकल्पिक, बूलियन

Apple प्लेटफ़ॉर्म पर, APNs पेलोड में content-available दर्शाने के लिए इस फ़ील्ड का उपयोग करें। जब कोई अधिसूचना या संदेश भेजा जाता है और इसे true पर सेट किया जाता है, तो एक निष्क्रिय क्लाइंट ऐप जागृत हो जाता है, और संदेश एपीएन के माध्यम से एक मूक अधिसूचना के रूप में भेजा जाता है, न कि एफसीएम के माध्यम से। ध्यान दें कि एपीएन में मूक सूचनाएं वितरित होने की गारंटी नहीं है, और यह उपयोगकर्ता द्वारा लो पावर मोड चालू करने, ऐप को जबरदस्ती छोड़ने आदि जैसे कारकों पर निर्भर हो सकता है। एंड्रॉइड पर, डेटा संदेश ऐप को डिफ़ॉल्ट रूप से सक्रिय करते हैं। Chrome पर, वर्तमान में समर्थित नहीं है.

mutable_content वैकल्पिक, JSON बूलियन

Apple प्लेटफ़ॉर्म पर, APNs पेलोड में mutable-content प्रतिनिधित्व करने के लिए इस फ़ील्ड का उपयोग करें। जब कोई अधिसूचना भेजी जाती है और इसे true पर सेट किया जाता है, तो अधिसूचना सेवा ऐप एक्सटेंशन का उपयोग करके अधिसूचना की सामग्री को प्रदर्शित होने से पहले संशोधित किया जा सकता है। एंड्रॉइड और वेब के लिए इस पैरामीटर को नजरअंदाज कर दिया जाएगा।

time_to_live वैकल्पिक, संख्या

यह पैरामीटर निर्दिष्ट करता है कि यदि डिवाइस ऑफ़लाइन है तो संदेश को कितनी देर तक (सेकंड में) FCM स्टोरेज में रखा जाना चाहिए। समर्थित रहने का अधिकतम समय 4 सप्ताह है, और डिफ़ॉल्ट मान 4 सप्ताह है। अधिक जानकारी के लिए, संदेश का जीवनकाल निर्धारित करना देखें।

restricted_package_
name
(केवल एंड्रॉइड)
वैकल्पिक, स्ट्रिंग यह पैरामीटर एप्लिकेशन के पैकेज नाम को निर्दिष्ट करता है जहां संदेश प्राप्त करने के लिए पंजीकरण टोकन का मिलान होना चाहिए।
dry_run वैकल्पिक, बूलियन

यह पैरामीटर, जब true पर सेट किया जाता है, तो डेवलपर्स को वास्तव में कोई संदेश भेजे बिना अनुरोध का परीक्षण करने की अनुमति मिलती है।

मूल मूल्य false है ।

पेलोड
data वैकल्पिक, वस्तु

यह पैरामीटर संदेश के पेलोड के कस्टम कुंजी-मूल्य जोड़े को निर्दिष्ट करता है।

उदाहरण के लिए, data:{"score":"3x1"}:

Apple प्लेटफ़ॉर्म पर, यदि संदेश APN के माध्यम से भेजा जाता है, तो यह कस्टम डेटा फ़ील्ड का प्रतिनिधित्व करता है। यदि इसे FCM के माध्यम से भेजा जाता है, तो इसे AppDelegate application:didReceiveRemoteNotification: में मुख्य मान शब्दकोश के रूप में दर्शाया जाएगा।

एंड्रॉइड पर, इसके परिणामस्वरूप स्ट्रिंग मान 3x1 के साथ score नाम का एक अतिरिक्त इरादा होगा।

कुंजी एक आरक्षित शब्द ("से", "message_type", या "google" या "gcm") से शुरू होने वाला कोई शब्द नहीं होना चाहिए। इस तालिका में परिभाषित किसी भी शब्द (जैसे collapse_key ) का उपयोग न करें।

स्ट्रिंग प्रकारों में मानों की अनुशंसा की जाती है. आपको ऑब्जेक्ट या अन्य गैर-स्ट्रिंग डेटा प्रकारों (उदाहरण के लिए, पूर्णांक या बूलियन) के मानों को स्ट्रिंग में परिवर्तित करना होगा।

notification वैकल्पिक, वस्तु यह पैरामीटर अधिसूचना पेलोड के पूर्वनिर्धारित, उपयोगकर्ता-दृश्यमान कुंजी-मूल्य जोड़े को निर्दिष्ट करता है। विवरण के लिए अधिसूचना पेलोड समर्थन देखें। अधिसूचना संदेश और डेटा संदेश विकल्पों के बारे में अधिक जानकारी के लिए, संदेश प्रकार देखें। यदि एक अधिसूचना पेलोड प्रदान किया गया है, या Apple डिवाइस पर किसी संदेश के लिए content_available विकल्प true पर सेट है, तो संदेश APNs के माध्यम से भेजा जाता है, अन्यथा यह FCM के माध्यम से भेजा जाता है।

अधिसूचना पेलोड समर्थन

निम्नलिखित तालिकाएँ iOS और Android के लिए अधिसूचना संदेश बनाने के लिए उपलब्ध पूर्वनिर्धारित कुंजियों को सूचीबद्ध करती हैं।

तालिका 2ए. आईओएस - अधिसूचना संदेशों के लिए कुंजियाँ

पैरामीटर प्रयोग विवरण
title वैकल्पिक, स्ट्रिंग

अधिसूचना का शीर्षक.

यह फ़ील्ड फ़ोन और टैबलेट पर दिखाई नहीं देती है.

body वैकल्पिक, स्ट्रिंग

अधिसूचना का मुख्य पाठ.

sound वैकल्पिक, स्ट्रिंग

डिवाइस को सूचना मिलने पर बजने वाली ध्वनि।

क्लाइंट ऐप के मुख्य बंडल में या ऐप के डेटा कंटेनर के Library/Sounds फ़ोल्डर में ध्वनि फ़ाइलों को निर्दिष्ट करने वाली स्ट्रिंग। अधिक जानकारी के लिए iOS डेवलपर लाइब्रेरी देखें।

badge वैकल्पिक, स्ट्रिंग

होम स्क्रीन ऐप आइकन पर बैज का मान।

यदि निर्दिष्ट नहीं है, तो बैज नहीं बदला जाता है।

यदि 0 पर सेट किया जाता है, तो बैज हटा दिया जाता है।

click_action वैकल्पिक, स्ट्रिंग

उपयोगकर्ता से जुड़ी कार्रवाई अधिसूचना पर क्लिक करती है।

एपीएन पेलोड में category के अनुरूप है।

subtitle वैकल्पिक, स्ट्रिंग

अधिसूचना का उपशीर्षक.

body_loc_key वैकल्पिक, स्ट्रिंग

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार बॉडी टेक्स्ट को स्थानीयकृत करने के लिए ऐप के स्ट्रिंग संसाधनों में बॉडी स्ट्रिंग की कुंजी।

एपीएन पेलोड में loc-key के अनुरूप है।

अधिक जानकारी के लिए पेलोड कुंजी संदर्भ और अपने दूरस्थ सूचनाओं की सामग्री का स्थानीयकरण देखें।

body_loc_args वैकल्पिक, स्ट्रिंग के रूप में JSON सरणी

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार बॉडी टेक्स्ट को स्थानीयकृत करने के लिए body_loc_key में प्रारूप विनिर्देशकों के स्थान पर परिवर्तनीय स्ट्रिंग मानों का उपयोग किया जाना चाहिए।

एपीएन पेलोड में loc-args से मेल खाता है।

अधिक जानकारी के लिए पेलोड कुंजी संदर्भ और अपने दूरस्थ सूचनाओं की सामग्री का स्थानीयकरण देखें।

title_loc_key वैकल्पिक, स्ट्रिंग

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार शीर्षक पाठ को स्थानीयकृत करने के लिए ऐप के स्ट्रिंग संसाधनों में शीर्षक स्ट्रिंग की कुंजी।

एपीएन पेलोड में title-loc-key के अनुरूप है।

अधिक जानकारी के लिए पेलोड कुंजी संदर्भ और अपने दूरस्थ सूचनाओं की सामग्री का स्थानीयकरण देखें।

title_loc_args वैकल्पिक, स्ट्रिंग के रूप में JSON सरणी

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार शीर्षक पाठ को स्थानीयकृत करने के लिए title_loc_key में प्रारूप विनिर्देशकों के स्थान पर परिवर्तनीय स्ट्रिंग मानों का उपयोग किया जाना चाहिए।

एपीएन पेलोड में title-loc-args के अनुरूप है।

अधिक जानकारी के लिए पेलोड कुंजी संदर्भ और अपने दूरस्थ सूचनाओं की सामग्री का स्थानीयकरण देखें।

तालिका 2बी. एंड्रॉइड - अधिसूचना संदेशों के लिए कुंजियाँ

पैरामीटर प्रयोग विवरण
title वैकल्पिक, स्ट्रिंग

अधिसूचना का शीर्षक.

body वैकल्पिक, स्ट्रिंग

अधिसूचना का मुख्य पाठ.

android_channel_id वैकल्पिक, स्ट्रिंग

अधिसूचना की चैनल आईडी (एंड्रॉइड ओ में नई)।

इस चैनल आईडी के साथ कोई भी अधिसूचना प्राप्त होने से पहले ऐप को इस चैनल आईडी के साथ एक चैनल बनाना होगा।

यदि आप अनुरोध में यह चैनल आईडी नहीं भेजते हैं, या यदि प्रदान की गई चैनल आईडी अभी तक ऐप द्वारा नहीं बनाई गई है, तो एफसीएम ऐप मेनिफेस्ट में निर्दिष्ट चैनल आईडी का उपयोग करता है।

icon वैकल्पिक, स्ट्रिंग

अधिसूचना का चिह्न.

खींचने योग्य संसाधन myicon के लिए अधिसूचना आइकन को myicon पर सेट करता है। यदि आप अनुरोध में यह कुंजी नहीं भेजते हैं, तो एफसीएम आपके ऐप मेनिफेस्ट में निर्दिष्ट लॉन्चर आइकन प्रदर्शित करता है।

sound वैकल्पिक, स्ट्रिंग

डिवाइस को सूचना मिलने पर बजने वाली ध्वनि।

"default" या ऐप में बंडल किए गए ध्वनि संसाधन के फ़ाइल नाम का समर्थन करता है। ध्वनि फ़ाइलें /res/raw/ में होनी चाहिए।

tag वैकल्पिक, स्ट्रिंग

अधिसूचना ड्रॉअर में मौजूदा सूचनाओं को बदलने के लिए पहचानकर्ता का उपयोग किया जाता है।

यदि निर्दिष्ट नहीं है, तो प्रत्येक अनुरोध एक नई अधिसूचना बनाता है।

यदि निर्दिष्ट किया गया है और उसी टैग के साथ एक अधिसूचना पहले से ही दिखाई जा रही है, तो नई अधिसूचना अधिसूचना ड्रॉअर में मौजूदा अधिसूचना को बदल देती है।

color वैकल्पिक, स्ट्रिंग

अधिसूचना का आइकन रंग, #rrggbb प्रारूप में व्यक्त किया गया है।

click_action वैकल्पिक, स्ट्रिंग

उपयोगकर्ता से जुड़ी कार्रवाई अधिसूचना पर क्लिक करती है।

यदि निर्दिष्ट किया गया है, तो जब कोई उपयोगकर्ता अधिसूचना पर क्लिक करता है तो मिलान इरादे वाले फ़िल्टर वाली एक गतिविधि लॉन्च की जाती है।

body_loc_key वैकल्पिक, स्ट्रिंग

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार बॉडी टेक्स्ट को स्थानीयकृत करने के लिए ऐप के स्ट्रिंग संसाधनों में बॉडी स्ट्रिंग की कुंजी।

अधिक जानकारी के लिए स्ट्रिंग संसाधन देखें।

body_loc_args वैकल्पिक, स्ट्रिंग के रूप में JSON सरणी

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार बॉडी टेक्स्ट को स्थानीयकृत करने के लिए body_loc_key में प्रारूप विनिर्देशकों के स्थान पर परिवर्तनीय स्ट्रिंग मानों का उपयोग किया जाना चाहिए।

अधिक जानकारी के लिए फ़ॉर्मेटिंग और स्टाइलिंग देखें।

title_loc_key वैकल्पिक, स्ट्रिंग

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार शीर्षक पाठ को स्थानीयकृत करने के लिए ऐप के स्ट्रिंग संसाधनों में शीर्षक स्ट्रिंग की कुंजी।

अधिक जानकारी के लिए स्ट्रिंग संसाधन देखें।

title_loc_args वैकल्पिक, स्ट्रिंग के रूप में JSON सरणी

उपयोगकर्ता के वर्तमान स्थानीयकरण के अनुसार शीर्षक पाठ को स्थानीयकृत करने के लिए title_loc_key में प्रारूप विनिर्देशकों के स्थान पर परिवर्तनीय स्ट्रिंग मानों का उपयोग किया जाना चाहिए।

अधिक जानकारी के लिए फ़ॉर्मेटिंग और स्टाइलिंग देखें।

तालिका 2सी. वेब (जावास्क्रिप्ट) - अधिसूचना संदेशों के लिए कुंजियाँ

पैरामीटर प्रयोग विवरण
title वैकल्पिक, स्ट्रिंग

अधिसूचना का शीर्षक.

body वैकल्पिक, स्ट्रिंग

अधिसूचना का मुख्य पाठ.

icon वैकल्पिक, स्ट्रिंग

अधिसूचना आइकन के लिए उपयोग किया जाने वाला URL.

click_action वैकल्पिक, स्ट्रिंग

उपयोगकर्ता से जुड़ी कार्रवाई अधिसूचना पर क्लिक करती है।

सभी यूआरएल मानों के लिए, HTTPS आवश्यक है।

डाउनस्ट्रीम HTTP संदेश (सादा पाठ)

निम्न तालिका सादे पाठ डाउनस्ट्रीम HTTP संदेशों में लक्ष्य, विकल्प और पेलोड के लिए सिंटैक्स सूचीबद्ध करती है।

तालिका 3. डाउनस्ट्रीम सादे पाठ HTTP संदेशों के लिए लक्ष्य, विकल्प और पेलोड।

पैरामीटर प्रयोग विवरण
लक्ष्यों को
registration_id आवश्यक, स्ट्रिंग

यह पैरामीटर संदेश प्राप्त करने वाले क्लाइंट ऐप्स (पंजीकरण टोकन) को निर्दिष्ट करता है।

केवल HTTP JSON प्रारूप का उपयोग करके मल्टीकास्ट मैसेजिंग (एक से अधिक पंजीकरण टोकन भेजना) की अनुमति है।

विकल्प
collapse_key वैकल्पिक, स्ट्रिंग विवरण के लिए तालिका 1 देखें.
time_to_live वैकल्पिक, संख्या विवरण के लिए तालिका 1 देखें.
restricted_package_name वैकल्पिक, स्ट्रिंग विवरण के लिए तालिका 1 देखें.
dry_run वैकल्पिक, बूलियन विवरण के लिए तालिका 1 देखें.
पेलोड
data.<key> वैकल्पिक, स्ट्रिंग

यह पैरामीटर संदेश के पेलोड के कुंजी-मूल्य जोड़े को निर्दिष्ट करता है। कुंजी-मान पैरामीटरों की संख्या पर कोई सीमा नहीं है, लेकिन कुल संदेश आकार सीमा 4000 बाइट्स है।

उदाहरण के लिए, एंड्रॉइड में, "data.score"."3x1" परिणामस्वरूप स्ट्रिंग मान 3x1 के साथ score नाम का एक इरादा अतिरिक्त होगा।

कुंजी एक आरक्षित शब्द ("से", "message_type", या "google" या "gcm") से शुरू होने वाला कोई शब्द नहीं होना चाहिए। इस तालिका में परिभाषित किसी भी शब्द (जैसे collapse_key ) का उपयोग न करें।

डाउनस्ट्रीम संदेश प्रतिक्रिया की व्याख्या करना

एफसीएम से भेजे गए संदेश प्रतिक्रिया की व्याख्या करने के लिए ऐप सर्वर को संदेश प्रतिक्रिया हेडर और बॉडी दोनों का मूल्यांकन करना चाहिए। निम्न तालिका संभावित प्रतिक्रियाओं का वर्णन करती है।

तालिका 4. डाउनस्ट्रीम HTTP संदेश प्रतिक्रिया शीर्षलेख।

प्रतिक्रिया विवरण
200 संदेश सफलतापूर्वक संसाधित किया गया. प्रतिक्रिया निकाय में संदेश की स्थिति के बारे में अधिक विवरण होंगे, लेकिन इसका प्रारूप इस बात पर निर्भर करेगा कि अनुरोध JSON था या सादा पाठ। अधिक विवरण के लिए तालिका 5 देखें।
400 केवल JSON अनुरोधों के लिए लागू होता है। इंगित करता है कि अनुरोध को JSON के रूप में पार्स नहीं किया जा सका, या इसमें अमान्य फ़ील्ड शामिल थे (उदाहरण के लिए, एक स्ट्रिंग को पास करना जहां एक संख्या अपेक्षित थी)। विफलता का सटीक कारण प्रतिक्रिया में वर्णित है और अनुरोध को पुनः प्रयास करने से पहले समस्या का समाधान किया जाना चाहिए।
401 प्रेषक खाते को प्रमाणित करने में त्रुटि हुई।
5xx 500-599 रेंज (जैसे 500 या 503) में त्रुटियां इंगित करती हैं कि अनुरोध को संसाधित करने का प्रयास करते समय एफसीएम बैकएंड में एक आंतरिक त्रुटि थी, या सर्वर अस्थायी रूप से अनुपलब्ध है (उदाहरण के लिए, टाइमआउट के कारण)। प्रेषक को प्रतिक्रिया में शामिल किसी भी Retry-After हेडर का सम्मान करते हुए बाद में पुनः प्रयास करना होगा। एप्लिकेशन सर्वर को घातीय बैक-ऑफ लागू करना होगा।

निम्न तालिका डाउनस्ट्रीम संदेश प्रतिक्रिया निकाय (JSON) में फ़ील्ड को सूचीबद्ध करती है।

तालिका 5. डाउनस्ट्रीम HTTP संदेश प्रतिक्रिया निकाय (JSON)।

पैरामीटर प्रयोग विवरण
multicast_id आवश्यक, संख्या मल्टीकास्ट संदेश की पहचान करने वाली अद्वितीय आईडी (संख्या)।
success आवश्यक, संख्या बिना किसी त्रुटि के संसाधित किए गए संदेशों की संख्या.
failure आवश्यक, संख्या उन संदेशों की संख्या जिन पर कार्रवाई नहीं की जा सकी.
results आवश्यक, वस्तुओं की सरणी संसाधित संदेशों की स्थिति का प्रतिनिधित्व करने वाली वस्तुओं की श्रृंखला। वस्तुओं को अनुरोध के समान क्रम में सूचीबद्ध किया गया है (यानी, अनुरोध में प्रत्येक पंजीकरण आईडी के लिए, इसका परिणाम प्रतिक्रिया में उसी सूचकांक में सूचीबद्ध है)।
  • message_id : प्रत्येक सफलतापूर्वक संसाधित संदेश के लिए एक अद्वितीय आईडी निर्दिष्ट करने वाली स्ट्रिंग।
  • error : स्ट्रिंग उस त्रुटि को निर्दिष्ट करती है जो प्राप्तकर्ता के लिए संदेश संसाधित करते समय उत्पन्न हुई। संभावित मान तालिका 9 में पाए जा सकते हैं।

तालिका 6. विषय संदेश HTTP प्रतिक्रिया निकाय (JSON)।

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

तालिका 7. डाउनस्ट्रीम HTTP संदेश प्रतिक्रिया निकाय (सादा पाठ) के लिए सफलता प्रतिक्रिया।

पैरामीटर प्रयोग विवरण
id आवश्यक, स्ट्रिंग यह पैरामीटर सफलतापूर्वक संसाधित अद्वितीय संदेश आईडी FCM को निर्दिष्ट करता है।
registration_id वैकल्पिक, स्ट्रिंग यह पैरामीटर उस क्लाइंट ऐप के लिए पंजीकरण टोकन निर्दिष्ट करता है जिस पर संदेश संसाधित और भेजा गया था।

तालिका 8. डाउनस्ट्रीम HTTP संदेश प्रतिक्रिया निकाय (सादा पाठ) के लिए त्रुटि प्रतिक्रिया।

पैरामीटर प्रयोग विवरण
Error आवश्यक, स्ट्रिंग यह पैरामीटर प्राप्तकर्ता के लिए संदेश संसाधित करते समय त्रुटि मान निर्दिष्ट करता है। विवरण के लिए तालिका 9 देखें।

डाउनस्ट्रीम संदेश त्रुटि प्रतिक्रिया कोड

निम्न तालिका डाउनस्ट्रीम संदेशों के लिए त्रुटि प्रतिक्रिया कोड सूचीबद्ध करती है।

तालिका 9. डाउनस्ट्रीम संदेश त्रुटि प्रतिक्रिया कोड।

गलती HTTP कोड अनुशंसित कार्रवाई
पंजीकरण टोकन गुम है 200 + त्रुटि: पंजीकरण गुम जांचें कि अनुरोध में एक पंजीकरण टोकन है (सादे पाठ संदेश में registration_id में, या JSON में to या registration_ids फ़ील्ड में)।
अमान्य पंजीकरण टोकन 200 + त्रुटि:अमान्यपंजीकरण आपके द्वारा सर्वर को भेजे गए पंजीकरण टोकन के प्रारूप की जाँच करें। सुनिश्चित करें कि यह क्लाइंट ऐप को फायरबेस नोटिफिकेशन के साथ पंजीकरण करने पर प्राप्त पंजीकरण टोकन से मेल खाता है। अतिरिक्त अक्षर न काटें या न जोड़ें।
अपंजीकृत डिवाइस 200 + त्रुटि:पंजीकृत नहीं मौजूदा पंजीकरण टोकन कई परिदृश्यों में मान्य होना बंद हो सकता है, जिनमें शामिल हैं:
  • यदि क्लाइंट ऐप FCM के साथ अपंजीकृत हो जाता है।
  • यदि क्लाइंट ऐप स्वचालित रूप से अपंजीकृत है, जो तब हो सकता है जब उपयोगकर्ता एप्लिकेशन को अनइंस्टॉल कर देता है। उदाहरण के लिए, iOS पर, यदि APNs फीडबैक सेवा ने APNs टोकन को अमान्य बताया है।
  • यदि पंजीकरण टोकन समाप्त हो जाता है (उदाहरण के लिए, Google पंजीकरण टोकन को ताज़ा करने का निर्णय ले सकता है, या iOS उपकरणों के लिए एपीएन टोकन समाप्त हो गया है)।
  • यदि क्लाइंट ऐप अपडेट किया गया है लेकिन नया संस्करण संदेश प्राप्त करने के लिए कॉन्फ़िगर नहीं किया गया है।
इन सभी मामलों के लिए, इस पंजीकरण टोकन को ऐप सर्वर से हटा दें और संदेश भेजने के लिए इसका उपयोग बंद कर दें।
अमान्य पैकेज नाम 200 + त्रुटि:अमान्यपैकेजनाम सुनिश्चित करें कि संदेश एक पंजीकरण टोकन को संबोधित किया गया था जिसका पैकेज नाम अनुरोध में पारित मूल्य से मेल खाता है।
प्रमाणीकरण त्रुटि 401 संदेश भेजने के लिए उपयोग किया गया प्रेषक खाता प्रमाणित नहीं किया जा सका. संभावित कारण हैं:
  • HTTP अनुरोध में प्राधिकरण हेडर गायब है या अमान्य सिंटैक्स के साथ है।
  • निर्दिष्ट सर्वर कुंजी जिस फ़ायरबेस प्रोजेक्ट से संबंधित है वह गलत है।
  • केवल लीगेसी सर्वर कुंजियाँ—अनुरोध उस सर्वर से उत्पन्न हुआ जो सर्वर कुंजी आईपी में श्वेतसूची में नहीं है।
जांचें कि आप प्रमाणीकरण हेडर के अंदर जो टोकन भेज रहे हैं वह आपके प्रोजेक्ट से जुड़ी सही सर्वर कुंजी है। विवरण के लिए सर्वर कुंजी की वैधता की जाँच करना देखें। यदि आप एक लीगेसी सर्वर कुंजी का उपयोग कर रहे हैं, तो आपको एक नई कुंजी में अपग्रेड करने की अनुशंसा की जाती है जिसमें कोई आईपी प्रतिबंध नहीं है। लीगेसी सर्वर कुंजियाँ माइग्रेट करें देखें।
बेमेल प्रेषक 200 + त्रुटि: बेमेलसेंडरआईडी एक पंजीकरण टोकन प्रेषकों के एक निश्चित समूह से जुड़ा होता है। जब कोई क्लाइंट ऐप FCM के लिए पंजीकृत होता है, तो उसे यह निर्दिष्ट करना होगा कि किन प्रेषकों को संदेश भेजने की अनुमति है। क्लाइंट ऐप पर संदेश भेजते समय आपको उन प्रेषक आईडी में से एक का उपयोग करना चाहिए। यदि आप किसी भिन्न प्रेषक पर स्विच करते हैं, तो मौजूदा पंजीकरण टोकन काम नहीं करेंगे।
अमान्य JSON 400 जांचें कि JSON संदेश ठीक से स्वरूपित है और इसमें वैध फ़ील्ड शामिल हैं (उदाहरण के लिए, यह सुनिश्चित करना कि सही डेटा प्रकार पास किया गया है)।
अमान्य मापदण्ड 400 + त्रुटि:अमान्य पैरामीटर्स जांचें कि दिए गए पैरामीटर का नाम और प्रकार सही है।
संदेश बहुत बड़ा 200 + त्रुटि: MessageTooBig जांचें कि संदेश में शामिल पेलोड डेटा का कुल आकार एफसीएम सीमा से अधिक नहीं है: अधिकांश संदेशों के लिए 4096 बाइट्स, या विषयों के संदेशों के मामले में 2048 बाइट्स। इसमें कुंजियाँ और मान दोनों शामिल हैं।
अमान्य डेटा कुंजी 200+त्रुटि:
अमान्यडेटाकी
जांचें कि पेलोड डेटा में कोई कुंजी (जैसे कि from , या gcm , या google द्वारा उपसर्ग किया गया कोई मान) नहीं है जिसका उपयोग FCM द्वारा आंतरिक रूप से किया जाता है। ध्यान दें कि कुछ शब्द (जैसे collapse_key ) का उपयोग एफसीएम द्वारा भी किया जाता है, लेकिन पेलोड में इसकी अनुमति है, ऐसी स्थिति में पेलोड मान को एफसीएम मान से ओवरराइड कर दिया जाएगा।
जीने का अमान्य समय 200 + त्रुटि: अमान्य टीटीएल जांचें कि time_to_live में प्रयुक्त मान एक पूर्णांक है जो 0 और 2,419,200 (4 सप्ताह) के बीच सेकंड में अवधि का प्रतिनिधित्व करता है।
समय समाप्त 5xx या 200 + त्रुटि: अनुपलब्ध

सर्वर समय पर अनुरोध संसाधित नहीं कर सका. उसी अनुरोध को पुनः प्रयास करें, लेकिन आपको यह करना होगा:

  • यदि एफसीएम कनेक्शन सर्वर से प्रतिक्रिया में शामिल किया गया है तो Retry-After हेडर का सम्मान करें।
  • अपने पुनः प्रयास तंत्र में घातीय बैक-ऑफ लागू करें। (उदाहरण के लिए यदि आपने पहले पुनः प्रयास से पहले एक सेकंड प्रतीक्षा की, तो अगले प्रयास से पहले कम से कम दो सेकंड प्रतीक्षा करें, फिर 4 सेकंड और इसी तरह)। यदि आप एकाधिक संदेश भेज रहे हैं, तो एक ही समय में सभी संदेशों के लिए नया अनुरोध जारी करने से बचने के लिए प्रत्येक को स्वतंत्र रूप से अतिरिक्त यादृच्छिक राशि से विलंबित करें।

समस्याएँ उत्पन्न करने वाले प्रेषकों को काली सूची में डाले जाने का जोखिम रहता है।

आंतरिक सर्वर त्रुटि 500 या 200 + त्रुटि: आंतरिक सर्वर त्रुटि अनुरोध को संसाधित करने का प्रयास करते समय सर्वर को एक त्रुटि का सामना करना पड़ा। आप "टाइमआउट" में सूचीबद्ध आवश्यकताओं का पालन करते हुए उसी अनुरोध का पुनः प्रयास कर सकते हैं (ऊपर पंक्ति देखें)। यदि त्रुटि बनी रहती है, तो कृपया फायरबेस समर्थन से संपर्क करें।
डिवाइस संदेश दर पार हो गई 200+त्रुटि:
डिवाइसमैसेजरेट
पार हो गई

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

इस डिवाइस पर भेजे गए संदेशों की संख्या कम करें और भेजने का पुनः प्रयास करने के लिए घातीय बैकऑफ़ का उपयोग करें।

विषय संदेश दर पार हो गई 200+त्रुटि:
विषय संदेश दर
पार हो गई
किसी विशेष विषय पर ग्राहकों को संदेशों की दर बहुत अधिक है। इस विषय के लिए भेजे गए संदेशों की संख्या कम करें और भेजने का पुनः प्रयास करने के लिए घातीय बैकऑफ़ का उपयोग करें।
अमान्य एपीएन क्रेडेंशियल 200+त्रुटि:
अमान्य ApnsCredential
Apple डिवाइस पर लक्षित संदेश नहीं भेजा जा सका क्योंकि आवश्यक APNs प्रमाणीकरण कुंजी अपलोड नहीं की गई थी या समाप्त हो गई थी। अपने विकास और उत्पादन प्रमाण-पत्रों की वैधता की जाँच करें।

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

निम्न तालिका डिवाइस समूह बनाने और सदस्यों को जोड़ने और हटाने के लिए कुंजियाँ सूचीबद्ध करती है। अधिक जानकारी के लिए, अपने प्लेटफ़ॉर्म, iOS+ या Android के लिए मार्गदर्शिका देखें।

तालिका 10. डिवाइस समूह प्रबंधन कुंजियाँ।

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