Firebase क्लाउड से मैसेज वाला एचटीटीपी प्रोटोकॉल

यह दस्तावेज़ पास करने के लिए इस्तेमाल किए गए एचटीटीपी सिंटैक्स का रेफ़रंस देता है Firebase क्लाउड से मैसेज भेजकर, अपने ऐप्लिकेशन सर्वर से क्लाइंट ऐप्लिकेशन पर मैसेज भेजने की सुविधा पाएं.

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

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

उपलब्ध पैरामीटर और विकल्प ये ज़्यादा बड़ी कैटगरी हैं:

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

यह सेक्शन डाउनस्ट्रीम मैसेज भेजने और अनुवाद करने के लिए सिंटैक्स देता है Firebase क्लाउड से मैसेज से एचटीटीपी रिस्पॉन्स.

डाउनस्ट्रीम एचटीटीपी मैसेज (JSON)

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

टेबल 1. डाउनस्ट्रीम एचटीटीपी मैसेज (JSON) के लिए टारगेट, विकल्प, और पेलोड.

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
टारगेट
to ज़रूरी नहीं, स्ट्रिंग

इस पैरामीटर से, मैसेज पाने वाले के बारे में पता चलता है.

यह वैल्यू किसी डिवाइस का रजिस्ट्रेशन टोकन, डिवाइस ग्रुप का हो सकता है या कोई एक विषय (जिसमें /topics/). कई विषयों को भेजने के लिए, condition पैरामीटर.

registration_ids
ज़रूरी नहीं, स्ट्रिंग का कलेक्शन

यह पैरामीटर एक मल्टीकास्ट मैसेज, मैसेज पाने वाले व्यक्ति के बारे में बताता है एक से ज़्यादा पंजीकरण टोकन को भेजी गई हो.

वैल्यू, रजिस्ट्रेशन टोकन का कलेक्शन होना चाहिए, जिसे मल्टीकास्ट मैसेज की सुविधा मिलती है. अरे में कम से कम 1 और ज़्यादा से ज़्यादा 1,000 वर्ण होने चाहिए रजिस्ट्रेशन टोकन शामिल हैं. एक ही डिवाइस पर मैसेज भेजने के लिए, to पैरामीटर.

मल्टीकास्ट मैसेज सिर्फ़ एचटीटीपी JSON फ़ॉर्मैट का इस्तेमाल करके दिखाए जा सकते हैं.

condition ज़रूरी नहीं, स्ट्रिंग

यह पैरामीटर शर्तों का ऐसा लॉजिकल एक्सप्रेशन तय करता है जो तय करें कि मैसेज का टारगेट क्या है.

इस्तेमाल की जा सकने वाली शर्त: विषय, "'yourtopic' के तौर पर फ़ॉर्मैट किया गया विषय चुनें". यह वैल्यू, केस-इनसेंसिटिव होती है.

इस्तेमाल किए जा सकने वाले ऑपरेटर: &&, ||. ज़्यादा से ज़्यादा दो ऑपरेटर प्रति विषय संदेश समर्थित हैं.

notification_key
अब काम नहीं करता
ज़रूरी नहीं, स्ट्रिंग

यह पैरामीटर अब काम नहीं करता. इसके बजाय, यह बताने के लिए to का इस्तेमाल करें ईमेल पाने वाले. ईमेल पते पर मैसेज भेजने के बारे में ज़्यादा जानकारी पाने के लिए तो अपने प्लैटफ़ॉर्म से जुड़े दस्तावेज़ देखें.

विकल्प
collapse_key ज़रूरी नहीं, स्ट्रिंग

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

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

ध्यान दें: एक समय में ज़्यादा से ज़्यादा चार अलग-अलग छोटा करने वाले बटन की अनुमति है. इसका मतलब है कि FCM एक साथ हर क्लाइंट ऐप्लिकेशन के लिए चार अलग-अलग मैसेज सेव कर सकता है. अगर आपको तो इस संख्या से ज़्यादा हो जाने पर, इस बात की कोई गारंटी नहीं है कि FCM को छोटा करने के लिए इस्तेमाल की जाने वाली 4 कुंजियां सेव रहेंगी.

priority ज़रूरी नहीं, स्ट्रिंग

मैसेज की प्राथमिकता सेट करता है. मान्य मान "सामान्य" हैं और "ज़्यादा". Apple प्लैटफ़ॉर्म पर, ये एपीएन की प्राथमिकताएं 5 और 10 के मुताबिक हैं.

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

जब किसी मैसेज को ज़्यादा प्राथमिकता के साथ भेजा जाता है, तो उसे तुरंत भेज दिया जाता है. साथ ही, ऐप्लिकेशन में सूचना दिखाई जा सकती है.

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

Apple प्लैटफ़ॉर्म पर, content-available को दिखाने के लिए इस फ़ील्ड का इस्तेमाल करें एपीएन पेलोड. जब कोई सूचना या मैसेज भेजा जाता है और इसे true पर सेट किया जाता है, तो इस्तेमाल नहीं किया जा रहा क्लाइंट ऐप्लिकेशन चालू हो जाता है और एपीएन के ज़रिए, मैसेज को साइलेंट सूचना के तौर पर भेजा जाता है और FCM से नहीं. ध्यान दें कि एपीएन में साइलेंट मोड पर सेट की गई सूचनाएं नहीं दिखती हैं डिलीवरी की गारंटी दी जाती है. यह कई चीज़ों पर निर्भर करता है, जैसे कि उपयोगकर्ता कम पावर की सुविधा चालू कर रहा है मोड, ऐप्लिकेशन को ज़बरदस्ती बंद करना वगैरह. Android पर, डेटा मैसेज में ऐप्लिकेशन डिफ़ॉल्ट रूप से चालू हो जाता है. चालू है फ़िलहाल, यह Chrome पर काम नहीं करता.

mutable_content ज़रूरी नहीं, JSON बूलियन

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

time_to_live ज़रूरी नहीं है, नंबर

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

restricted_package_
name
(सिर्फ़ Android वर्शन पर)
ज़रूरी नहीं, स्ट्रिंग यह पैरामीटर उस ऐप्लिकेशन का पैकेज नाम बताता है जहां मैसेज पाने के लिए रजिस्ट्रेशन टोकन का मेल खाना ज़रूरी है.
dry_run वैकल्पिक, बूलियन

इस पैरामीटर को true पर सेट करके, डेवलपर अनुरोध पर कार्रवाई नहीं कर सकते.

डिफ़ॉल्ट वैल्यू false है.

पेलोड
data ज़रूरी नहीं, ऑब्जेक्ट

यह पैरामीटर मैसेज के पेलोड के कस्टम की-वैल्यू पेयर तय करता है.

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

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

Android पर, इससे स्ट्रिंग वैल्यू 3x1 के साथ score नाम का इंटेंट एक्स्ट्रा मिलेगा.

कुंजी कोई रिज़र्व शब्द ("from", "message_type" या इससे शुरू होने वाला कोई भी शब्द नहीं होना चाहिए "Google" या "gcm") है. इस टेबल में तय किए गए किसी भी शब्द का इस्तेमाल न करें (जैसे कि collapse_key).

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

notification ज़रूरी नहीं, ऑब्जेक्ट यह पैरामीटर, पहले से तय और उपयोगकर्ता को दिखने वाले की-वैल्यू पेयर को तय करता है सूचना पेलोड. ज़्यादा जानकारी के लिए, सूचना पेलोड से जुड़ी सहायता देखें. सूचना मैसेज और डेटा मैसेज के विकल्पों के बारे में ज़्यादा जानकारी के लिए, देखें मैसेज के टाइप. अगर सूचना पेलोड दिया गया है, या Apple को मैसेज भेजने के लिए, content_available विकल्प को true पर सेट किया गया है तो मैसेज को एपीएन के ज़रिए भेजा जाता है. अगर ऐसा नहीं है, तो यह FCM.

सूचना पेलोड से जुड़ी सहायता

इन टेबल में, iOS और Android के लिए, सूचना वाले मैसेज बनाने के लिए कुंजियां उपलब्ध हैं.

टेबल 2a. iOS — सूचना मैसेज के लिए कुंजियां

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
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 से मेल खाता है.

यहां जाएं: पेलोड कुंजी का रेफ़रंस और ज़्यादा जानकारी के लिए, रिमोट नोटिफ़िकेशन के कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराना जानकारी.

टेबल 2b. Android — सूचना मैसेज के लिए बटन

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
title ज़रूरी नहीं, स्ट्रिंग

सूचना का टाइटल.

body ज़रूरी नहीं, स्ट्रिंग

सूचना का मुख्य टेक्स्ट.

android_channel_id ज़रूरी नहीं, स्ट्रिंग

सूचना का चैनल आईडी (Android O में नया).

इस चैनल आईडी के साथ कोई भी सूचना पाने से पहले, ऐप्लिकेशन को इस चैनल आईडी के साथ एक चैनल बनाना होगा मिला.

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

icon ज़रूरी नहीं, स्ट्रिंग

सूचना का आइकॉन.

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

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 का इस्तेमाल करें उपयोगकर्ता के मौजूदा स्थानीय भाषा के मुताबिक होना चाहिए.

यहां जाएं: ज़्यादा जानकारी के लिए फ़ॉर्मैट और स्टाइल.

टेबल 2c. वेब (JavaScript) — सूचना मैसेज के लिए कुंजियां

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
title ज़रूरी नहीं, स्ट्रिंग

सूचना का टाइटल.

body ज़रूरी नहीं, स्ट्रिंग

सूचना का मुख्य टेक्स्ट.

icon ज़रूरी नहीं, स्ट्रिंग

सूचना के आइकॉन के लिए इस्तेमाल किया जाने वाला यूआरएल.

click_action ज़रूरी नहीं, स्ट्रिंग

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

यूआरएल की सभी वैल्यू के लिए, एचटीटीपीएस ज़रूरी है.

डाउनस्ट्रीम एचटीटीपी मैसेज (सामान्य टेक्स्ट)

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

तीसरी टेबल. डाउनस्ट्रीम सादे टेक्स्ट एचटीटीपी मैसेज के लिए टारगेट, विकल्प, और पेलोड.

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
टारगेट
registration_id ज़रूरी स्ट्रिंग

यह पैरामीटर उन क्लाइंट ऐप्लिकेशन (रजिस्ट्रेशन टोकन) के बारे में बताता है जिन्हें मैसेज मिलता है.

मल्टीकास्ट मैसेजिंग (एक से ज़्यादा रजिस्ट्रेशन टोकन पर भेजने) की अनुमति सिर्फ़ एचटीटीपी JSON फ़ॉर्मैट में है.

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

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

उदाहरण के लिए, Android में "data.score"."3x1" का इस्तेमाल करने पर इंटेंट ज़्यादा होगा स्ट्रिंग वैल्यू 3x1 के साथ score नाम दिया गया है.

कुंजी कोई रिज़र्व शब्द ("from", "message_type" या इससे शुरू होने वाला कोई भी शब्द नहीं होना चाहिए "Google" या "gcm") है. इस टेबल में तय किए गए किसी भी शब्द का इस्तेमाल न करें (जैसे कि collapse_key).

डाउनस्ट्रीम मैसेज के जवाब को समझना

ऐप्लिकेशन सर्वर को मैसेज रिस्पॉन्स हेडर और मुख्य हिस्से, दोनों का आकलन करना चाहिए FCM से भेजे गए मैसेज के जवाब को समझने के लिए. नीचे दी गई टेबल संभावित जवाबों की जानकारी देता है.

टेबल 4. डाउनस्ट्रीम एचटीटीपी मैसेज रिस्पॉन्स हेडर.

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

नीचे दी गई टेबल में, डाउनस्ट्रीम मैसेज रिस्पॉन्स वाले मुख्य भाग में फ़ील्ड की सूची दी गई है (JSON).

टेबल 5. डाउनस्ट्रीम एचटीटीपी मैसेज का जवाब का मुख्य हिस्सा (JSON).

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

टेबल 6. विषय संदेश HTTP जवाब का मुख्य भाग (JSON).

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

टेबल 7. डाउनस्ट्रीम एचटीटीपी मैसेज रिस्पॉन्स का मुख्य हिस्सा (सामान्य टेक्स्ट) के लिए सफलता का रिस्पॉन्स.

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
id ज़रूरी स्ट्रिंग यह पैरामीटर, प्रोसेस किए गए यूनीक मैसेज आईडी FCM के बारे में बताता है.
registration_id ज़रूरी नहीं, स्ट्रिंग यह पैरामीटर उस क्लाइंट ऐप्लिकेशन के रजिस्ट्रेशन टोकन के बारे में बताता है जो मैसेज में था प्रोसेस करके को भेजा गया.

टेबल 8. डाउनस्ट्रीम एचटीटीपी मैसेज के जवाब का मुख्य हिस्सा (सामान्य टेक्स्ट) के लिए गड़बड़ी का जवाब.

पैरामीटर इस्तेमाल किए जाने से जुड़ी जानकारी ब्यौरा
Error ज़रूरी स्ट्रिंग यह पैरामीटर, मैसेज को प्रोसेस करते समय गड़बड़ी वाली वैल्यू तय करता है. ज़्यादा जानकारी के लिए टेबल 9 देखें.

डाउनस्ट्रीम मैसेज के गड़बड़ी के रिस्पॉन्स कोड

नीचे दी गई टेबल में डाउनस्ट्रीम मैसेज के लिए गड़बड़ी के रिस्पॉन्स कोड दिए गए हैं.

टेबल 9. डाउनस्ट्रीम मैसेज गड़बड़ी के रिस्पॉन्स कोड.

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

सर्वर समय पर अनुरोध को प्रोसेस नहीं कर सका. उसी अनुरोध को फिर से करने की कोशिश करें, लेकिन आपको ये काम ज़रूर करने होंगे:

  • अगर Retry-After हेडर, FCM कनेक्शन सर्वर.
  • फिर से कोशिश करने के तरीके में एक्स्पोनेंशियल बैक-ऑफ़ लागू करें. (उदाहरण के लिए, अगर आपने एक सेकंड इंतज़ार किया पहले पुनर्प्रयास से पहले, अगले वाले से कम से कम दो सेकंड पहले इंतज़ार करें, फिर 4 सेकंड वगैरह इंतज़ार करें). अगर आप कई मैसेज भेज रहे हैं, तो हर एक के लिए अलग-अलग देरी करें ऐसा करने पर, एक ही समय में सभी मैसेज के लिए नया अनुरोध जारी करने से बचा जा सकता है.

ऐसे मैसेज भेजने वालों को ब्लैकलिस्ट किए जाने का खतरा होता है जिनकी वजह से समस्याएं पैदा होती हैं.

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

किसी खास डिवाइस पर मैसेज भेजने की दर बहुत ज़्यादा है. अगर Apple के ऐप्लिकेशन में एपीएन सीमाओं से ज़्यादा दर पर मैसेज भेजता है, तो उसे गड़बड़ी का यह मैसेज मिल सकता है

समस्या को हल करने के लिए, इस डिवाइस पर भेजे गए मैसेज की संख्या और एक्सपोनेन्शियल बैकऑफ़ का इस्तेमाल करें फिर से भेजने के लिए.

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

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

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

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

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