इस दस्तावेज़ में, एचटीटीपी सिंटैक्स का रेफ़रंस दिया गया है. इसका इस्तेमाल, Firebase Cloud Messaging के ज़रिए आपके ऐप्लिकेशन सर्वर से क्लाइंट ऐप्लिकेशन पर मैसेज भेजने के लिए किया जाता है.
लेगसी एचटीटीपी प्रोटोकॉल का इस्तेमाल करते समय, आपके ऐप्लिकेशन सर्वर को सभी एचटीटीपी अनुरोधों को इस एंडपॉइंट पर भेजना होगा:
https://fcm.googleapis.com/fcm/send
उपलब्ध पैरामीटर और विकल्प, इन मुख्य कैटगरी में आते हैं:
डाउनस्ट्रीम मैसेज का सिंटैक्स
इस सेक्शन में, डाउनस्ट्रीम मैसेज भेजने और Firebase Cloud Messaging से मिले एचटीटीपी रिस्पॉन्स को समझने के लिए सिंटैक्स दिया गया है.
डाउनस्ट्रीम एचटीटीपी मैसेज (JSON)
नीचे दी गई टेबल में, एचटीटीपी JSON मैसेज के लिए टारगेट, विकल्प, और पेलोड की सूची दी गई है.
पैरामीटर | इस्तेमाल | ब्यौरा | |
---|---|---|---|
टारगेट | |||
to |
ज़रूरी नहीं, स्ट्रिंग |
यह पैरामीटर, मैसेज पाने वाले व्यक्ति की जानकारी देता है.
वैल्यू, डिवाइस का रजिस्ट्रेशन टोकन, डिवाइस ग्रुप की सूचना कुंजी या एक विषय ( |
|
registration_ids | ज़रूरी नहीं, स्ट्रिंग का कलेक्शन |
इस पैरामीटर से मल्टीकास्ट मैसेज पाने वाले व्यक्ति की जानकारी मिलती है. यह मैसेज, एक से ज़्यादा रजिस्ट्रेशन टोकन को भेजा जाता है.
वैल्यू, रजिस्ट्रेशन टोकन की एक कलेक्शन होनी चाहिए, ताकि उन पर
मल्टीकास्ट मैसेज भेजा जा सके. ऐरे में कम से कम एक और ज़्यादा से ज़्यादा 1,000
रजिस्ट्रेशन टोकन होने चाहिए. किसी एक डिवाइस पर मैसेज भेजने के लिए, मल्टीकास्ट मैसेज भेजने के लिए, सिर्फ़ एचटीटीपी JSON फ़ॉर्मैट का इस्तेमाल किया जा सकता है. |
|
condition |
ज़रूरी नहीं, स्ट्रिंग | यह पैरामीटर, उन शर्तों के लॉजिकल एक्सप्रेशन के बारे में बताता है जिनसे मैसेज का टारगेट तय होता है. काम करने वाली शर्त: विषय, जिसे "विषयों में 'yourTopic'" के तौर पर फ़ॉर्मैट किया गया हो. यह वैल्यू, केस-इनसेंसिटिव होती है. इस्तेमाल किए जा सकने वाले ऑपरेटर: |
|
notification_key अब काम नहीं करता |
ज़रूरी नहीं, स्ट्रिंग | इस पैरामीटर का इस्तेमाल बंद कर दिया गया है. इसके बजाय, मैसेज पाने वाले लोगों की जानकारी देने के लिए,
|
|
विकल्प | |||
collapse_key |
ज़रूरी नहीं, स्ट्रिंग | यह पैरामीटर, मैसेज के ऐसे ग्रुप की पहचान करता है जिन्हें छोटा किया जा सकता है.जैसे, ध्यान दें कि मैसेज किस क्रम में भेजे जाएंगे, इसकी कोई गारंटी नहीं है. ध्यान दें: किसी भी समय, ज़्यादा से ज़्यादा चार अलग-अलग कॉलप्स बटन इस्तेमाल किए जा सकते हैं. इसका मतलब है कि FCM, हर क्लाइंट ऐप्लिकेशन के लिए एक साथ चार अलग-अलग मैसेज सेव कर सकता है. अगर इस संख्या से ज़्यादा मैसेज सेव किए जाते हैं, तो इस बात की कोई गारंटी नहीं है कि FCM किन चार कॉलप्स बटन को सेव करेगा. |
|
priority |
ज़रूरी नहीं, स्ट्रिंग | मैसेज की प्राथमिकता सेट करता है. मान्य वैल्यू "सामान्य" और "ज़्यादा" हैं. Apple के प्लैटफ़ॉर्म पर, ये APNs की प्राथमिकताओं 5 और 10 से मेल खाते हैं. डिफ़ॉल्ट रूप से, सूचना वाले मैसेज ज़्यादा प्राथमिकता के साथ भेजे जाते हैं और डेटा मैसेज सामान्य प्राथमिकता के साथ भेजे जाते हैं. सामान्य प्राथमिकता से, क्लाइंट ऐप्लिकेशन की बैटरी खपत को ऑप्टिमाइज़ किया जाता है. इसका इस्तेमाल तब तक किया जाना चाहिए, जब तक कि डेटा को तुरंत डिलीवर करने की ज़रूरत न हो. सामान्य प्राथमिकता वाले मैसेज के लिए, ऐप्लिकेशन को मैसेज मिलने में तय समय से ज़्यादा समय लग सकता है. जब कोई मैसेज ज़्यादा प्राथमिकता के साथ भेजा जाता है, तो उसे तुरंत भेज दिया जाता है. साथ ही, ऐप्लिकेशन पर इसकी सूचना भी दिख सकती है. |
|
content_available |
ज़रूरी नहीं, बूलियन | Apple प्लैटफ़ॉर्म पर, APNs पेलोड में |
|
mutable_content |
ज़रूरी नहीं, JSON बूलियन | Apple प्लैटफ़ॉर्म पर, APNs पेलोड में |
|
time_to_live |
ज़रूरी नहीं, संख्या | इस पैरामीटर से पता चलता है कि डिवाइस के ऑफ़लाइन होने पर, मैसेज को FCM के स्टोरेज में कितने समय (सेकंड में) तक रखा जाना चाहिए. ज़्यादा से ज़्यादा चार हफ़्ते तक टिकने की सुविधा उपलब्ध है. इसकी डिफ़ॉल्ट वैल्यू चार हफ़्ते है. ज़्यादा जानकारी के लिए, मैसेज के दिखने की अवधि सेट करना लेख पढ़ें. |
|
restricted_package_
(सिर्फ़ Android के लिए) |
ज़रूरी नहीं, स्ट्रिंग | यह पैरामीटर, उस ऐप्लिकेशन के पैकेज के नाम की जानकारी देता है जहां मैसेज पाने के लिए, रजिस्टरेशन टोकन मैच होने चाहिए. | |
dry_run |
ज़रूरी नहीं, बूलियन | इस पैरामीटर को डिफ़ॉल्ट वैल्यू |
|
पेलोड | |||
data |
ज़रूरी नहीं, ऑब्जेक्ट | यह पैरामीटर, मैसेज के पेलोड के कस्टम की-वैल्यू पेयर की जानकारी देता है. उदाहरण के लिए, Apple प्लैटफ़ॉर्म पर, अगर मैसेज APNs के ज़रिए भेजा जाता है, तो यह कस्टम डेटा फ़ील्ड दिखाता है. अगर इसे FCM के ज़रिए भेजा जाता है, तो इसे Android पर, इससे यह ज़रूरी है कि कुंजी कोई रिज़र्व शब्द न हो ("from", "message_type" या "google" या "gcm" से शुरू होने वाला कोई भी शब्द). इस टेबल में बताए गए किसी भी शब्द का इस्तेमाल न करें
(जैसे, हमारा सुझाव है कि स्ट्रिंग टाइप की वैल्यू दें. आपको ऑब्जेक्ट या स्ट्रिंग के अलावा किसी दूसरे डेटा टाइप (जैसे, इंटेजर या बूलियन) की वैल्यू को स्ट्रिंग में बदलना होगा. |
|
notification |
ज़रूरी नहीं, ऑब्जेक्ट | यह पैरामीटर, सूचना के पैल्यऑड के लिए पहले से तय किए गए, उपयोगकर्ता को दिखने वाले की-वैल्यू पेयर की जानकारी देता है. ज़्यादा जानकारी के लिए, सूचना पेलोड से जुड़ी सहायता देखें.
सूचना मैसेज और डेटा मैसेज के विकल्पों के बारे में ज़्यादा जानने के लिए,
मैसेज के टाइप देखें. अगर सूचना का पेलोड दिया गया है या किसी Apple डिवाइस पर मैसेज भेजने के लिए, content_available विकल्प को true पर सेट किया गया है, तो मैसेज एपीएन के ज़रिए भेजा जाता है. ऐसा न होने पर, मैसेज FCM के ज़रिए भेजा जाता है.
|
सूचना पेलोड के लिए सहायता
यहां दी गई टेबल में, iOS और Android के लिए सूचना मैसेज बनाने के लिए, पहले से तय की गई कुंजियों की सूची दी गई है.
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
title |
ज़रूरी नहीं, स्ट्रिंग |
सूचना का शीर्षक. यह फ़ील्ड, फ़ोन और टैबलेट पर नहीं दिखता. |
body |
ज़रूरी नहीं, स्ट्रिंग |
सूचना के मुख्य हिस्से का टेक्स्ट. |
sound |
ज़रूरी नहीं, स्ट्रिंग |
डिवाइस पर सूचना मिलने पर बजने वाली आवाज़.
क्लाइंट ऐप्लिकेशन के मुख्य बंडल या ऐप्लिकेशन के डेटा कंटेनर के
|
badge |
ज़रूरी नहीं, स्ट्रिंग |
होम स्क्रीन पर ऐप्लिकेशन आइकॉन पर मौजूद बैज की वैल्यू. अगर कोई वैल्यू नहीं दी जाती है, तो बैज नहीं बदलता.
अगर इसकी वैल्यू |
click_action |
ज़रूरी नहीं, स्ट्रिंग |
सूचना पर उपयोगकर्ता के क्लिक से जुड़ी कार्रवाई.
यह APNs पेलोड में |
subtitle |
ज़रूरी नहीं, स्ट्रिंग |
सूचना का सबटाइटल. |
body_loc_key |
ज़रूरी नहीं, स्ट्रिंग |
ऐप्लिकेशन के स्ट्रिंग संसाधनों में मौजूद मुख्य स्ट्रिंग, जिसका इस्तेमाल मुख्य टेक्स्ट को उपयोगकर्ता की मौजूदा स्थानीय भाषा में अनुवाद करने के लिए किया जाता है.
यह APNs पेलोड में ज़्यादा जानकारी के लिए, पेलोड कुंजी का रेफ़रंस और रिमोट सूचनाओं के कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराना देखें. |
body_loc_args |
ज़रूरी नहीं, JSON कलेक्शन को स्ट्रिंग के तौर पर |
वैरिएबल स्ट्रिंग की वैल्यू,
यह APNs पेलोड में ज़्यादा जानकारी के लिए, पेलोड कुंजी का रेफ़रंस और रिमोट सूचनाओं के कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराना देखें. |
title_loc_key |
ज़रूरी नहीं, स्ट्रिंग |
ऐप्लिकेशन के स्ट्रिंग संसाधनों में मौजूद टाइटल स्ट्रिंग की कुंजी, जिसका इस्तेमाल करके टाइटल टेक्स्ट को उपयोगकर्ता के मौजूदा स्थानीय भाषा में बदला जा सकता है.
यह APNs पेलोड में ज़्यादा जानकारी के लिए, पेलोड कुंजी का रेफ़रंस और रिमोट सूचनाओं के कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराना देखें. |
title_loc_args |
ज़रूरी नहीं, JSON कलेक्शन को स्ट्रिंग के तौर पर |
यह APNs पेलोड में ज़्यादा जानकारी के लिए, पेलोड कुंजी का रेफ़रंस और रिमोट सूचनाओं के कॉन्टेंट को स्थानीय भाषा में उपलब्ध कराना देखें. |
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
title |
ज़रूरी नहीं, स्ट्रिंग |
सूचना का शीर्षक. |
body |
ज़रूरी नहीं, स्ट्रिंग |
सूचना के मुख्य हिस्से का टेक्स्ट. |
android_channel_id |
ज़रूरी नहीं, स्ट्रिंग |
सूचना का चैनल आईडी (Android O में नया). इस चैनल आईडी से कोई भी सूचना पाने से पहले, ऐप्लिकेशन को इस चैनल आईडी से एक चैनल बनाना होगा. अगर अनुरोध में यह चैनल आईडी नहीं भेजा जाता है या दिए गए चैनल आईडी को ऐप्लिकेशन ने अब तक नहीं बनाया है, तो FCM, ऐप्लिकेशन मेनिफ़ेस्ट में बताए गए चैनल आईडी का इस्तेमाल करता है. |
icon |
ज़रूरी नहीं, स्ट्रिंग |
सूचना का आइकॉन.
ड्रॉबल संसाधन के लिए, सूचना आइकॉन को |
sound |
ज़रूरी नहीं, स्ट्रिंग |
डिवाइस पर सूचना मिलने पर बजने वाली आवाज़.
|
tag |
ज़रूरी नहीं, स्ट्रिंग |
आइडेंटिफ़ायर, जिसका इस्तेमाल नोटिफ़िकेशन पैनल में मौजूदा सूचनाओं को बदलने के लिए किया जाता है. अगर यह जानकारी नहीं दी जाती है, तो हर अनुरोध से एक नई सूचना बनती है. अगर टैग तय किया गया है और उसी टैग वाली सूचना पहले से दिख रही है, तो नई सूचना, सूचनाओं के ड्रॉअर में मौजूद मौजूदा सूचना की जगह ले लेगी. |
color |
ज़रूरी नहीं, स्ट्रिंग |
सूचना के आइकॉन का रंग, जिसे |
click_action |
ज़रूरी नहीं, स्ट्रिंग |
सूचना पर उपयोगकर्ता के क्लिक से जुड़ी कार्रवाई. अगर कोई इंटेंट फ़िल्टर तय किया गया है, तो उपयोगकर्ता के सूचना पर क्लिक करने पर, मैच करने वाला इंटेंट फ़िल्टर वाली गतिविधि शुरू हो जाती है. |
body_loc_key |
ज़रूरी नहीं, स्ट्रिंग |
ऐप्लिकेशन के स्ट्रिंग संसाधनों में मौजूद मुख्य स्ट्रिंग, जिसका इस्तेमाल मुख्य टेक्स्ट को उपयोगकर्ता के मौजूदा स्थानीय भाषा में अनुवाद करने के लिए किया जाता है. ज़्यादा जानकारी के लिए, स्ट्रिंग संसाधन देखें. |
body_loc_args |
ज़रूरी नहीं, JSON कलेक्शन को स्ट्रिंग के तौर पर |
वैरिएबल स्ट्रिंग की वैल्यू, ज़्यादा जानकारी के लिए, फ़ॉर्मैट और स्टाइल देखें. |
title_loc_key |
ज़रूरी नहीं, स्ट्रिंग |
ऐप्लिकेशन के स्ट्रिंग संसाधनों में मौजूद टाइटल स्ट्रिंग की कुंजी, जिसका इस्तेमाल करके टाइटल टेक्स्ट को उपयोगकर्ता के मौजूदा स्थानीय भाषा में बदला जा सकता है. ज़्यादा जानकारी के लिए, स्ट्रिंग संसाधन देखें. |
title_loc_args |
ज़रूरी नहीं, JSON कलेक्शन को स्ट्रिंग के तौर पर |
ज़्यादा जानकारी के लिए, फ़ॉर्मैट और स्टाइल देखें. |
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
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 में यह ज़रूरी है कि कुंजी कोई रिज़र्व शब्द न हो ("from", "message_type" या "google" या "gcm" से शुरू होने वाला कोई भी शब्द). इस टेबल में बताए गए किसी भी शब्द का इस्तेमाल न करें, जैसे कि |
डाउनस्ट्रीम मैसेज के जवाब को समझना
FCM से भेजे गए मैसेज के जवाब का विश्लेषण करने के लिए, ऐप्लिकेशन सर्वर को मैसेज के रिस्पॉन्स हेडर और मुख्य हिस्से, दोनों का आकलन करना चाहिए. इस टेबल में, संभावित जवाबों के बारे में बताया गया है.
जवाब | ब्यौरा |
---|---|
200 | मैसेज को प्रोसेस कर दिया गया. रिस्पॉन्स बॉडी में मैसेज के स्टेटस के बारे में ज़्यादा जानकारी होगी. हालांकि, इसका फ़ॉर्मैट इस बात पर निर्भर करेगा कि अनुरोध JSON में किया गया था या सादे टेक्स्ट में. ज़्यादा जानकारी के लिए, टेबल 5 देखें. |
400 | यह सिर्फ़ JSON अनुरोधों पर लागू होता है. इससे पता चलता है कि अनुरोध को JSON के तौर पर पार्स नहीं किया जा सका या उसमें अमान्य फ़ील्ड शामिल थे. उदाहरण के लिए, जहां संख्या होनी चाहिए वहां स्ट्रिंग देना. जवाब में, अनुरोध पूरा न हो पाने की सटीक वजह बताई गई है. अनुरोध फिर से करने से पहले, इस समस्या को ठीक कर लेना चाहिए. |
401 | ईमेल भेजने वाले खाते की पुष्टि करने में कोई गड़बड़ी हुई. |
5xx | 500 से 599 के बीच की गड़बड़ियां (जैसे कि 500 या 503), इस बात का संकेत देती हैं कि अनुरोध को प्रोसेस करने के दौरान, FCM बैकएंड में कोई अंदरूनी गड़बड़ी हुई थी या सर्वर कुछ समय के लिए उपलब्ध नहीं है. उदाहरण के लिए, टाइम आउट की वजह से. भेजने वाले को बाद में फिर से कोशिश करनी होगी. साथ ही, जवाब में शामिल किसी भी Retry-After हेडर का पालन करना होगा. ऐप्लिकेशन सर्वर को एक्सपोनेंशियल बैक-ऑफ़ लागू करना होगा. |
नीचे दी गई टेबल में, डाउनस्ट्रीम मैसेज के रिस्पॉन्स बॉडी (JSON) में मौजूद फ़ील्ड की सूची दी गई है.
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
multicast_id |
ज़रूरी है, नंबर | मल्टीकास्ट मैसेज की पहचान करने वाला यूनीक आईडी (नंबर). |
success |
ज़रूरी है, नंबर | बिना किसी गड़बड़ी के प्रोसेस किए गए मैसेज की संख्या. |
failure |
ज़रूरी है, नंबर | ऐसे मैसेज की संख्या जिन्हें प्रोसेस नहीं किया जा सका. |
results |
ज़रूरी है, ऑब्जेक्ट का कलेक्शन | प्रोसेस किए गए मैसेज की स्थिति दिखाने वाले ऑब्जेक्ट का कलेक्शन. ऑब्जेक्ट, अनुरोध के उसी क्रम में सूची में होते हैं जिस क्रम में अनुरोध किया गया था. इसका मतलब है कि अनुरोध में मौजूद हर रजिस्ट्रेशन आईडी के लिए, उसका नतीजा रिस्पॉन्स में उसी इंडेक्स में दिखता है.
|
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
message_id |
ज़रूरी नहीं, संख्या | जब FCM को अनुरोध मिल जाता है, तब विषय का मैसेज आईडी, सदस्यता वाले सभी डिवाइसों पर डिलीवर करने की कोशिश करता है. |
error |
ज़रूरी नहीं, स्ट्रिंग | मैसेज को प्रोसेस करते समय हुई गड़बड़ी. संभावित वैल्यू, टेबल 9 में देखी जा सकती हैं. |
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
id |
ज़रूरी है, स्ट्रिंग | इस पैरामीटर से, प्रोसेस किए गए यूनीक मैसेज आईडी FCM की जानकारी मिलती है. |
registration_id |
ज़रूरी नहीं, स्ट्रिंग | इस पैरामीटर से, उस क्लाइंट ऐप्लिकेशन के रजिस्ट्रेशन टोकन की जानकारी मिलती है जिस पर मैसेज को प्रोसेस किया गया था और भेजा गया था. |
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
Error |
ज़रूरी है, स्ट्रिंग | यह पैरामीटर, मैसेज पाने वाले व्यक्ति के लिए मैसेज को प्रोसेस करते समय गड़बड़ी की वैल्यू बताता है. ज़्यादा जानकारी के लिए, टेबल 9 देखें. |
डाउनस्ट्रीम मैसेज से जुड़ी गड़बड़ी के रिस्पॉन्स कोड
नीचे दी गई टेबल में, डाउनस्ट्रीम मैसेज के लिए गड़बड़ी के रिस्पॉन्स कोड की सूची दी गई है.
गड़बड़ी | एचटीटीपी कोड | सुझाई गई कार्रवाई |
---|---|---|
रजिस्ट्रेशन टोकन मौजूद नहीं है | 200 + error:MissingRegistration | देखें कि अनुरोध में रजिस्ट्रेशन टोकन मौजूद है या नहीं. यह टोकन, सादे टेक्स्ट मैसेज में registration_id में या JSON में to या registration_ids फ़ील्ड में मौजूद होता है. |
रजिस्ट्रेशन टोकन अमान्य है | 200 + error:InvalidRegistration | सर्वर को भेजे गए रजिस्ट्रेशन टोकन का फ़ॉर्मैट देखें. पक्का करें कि यह रजिस्टरेशन टोकन, Firebase सूचनाओं के साथ रजिस्टर करने पर क्लाइंट ऐप्लिकेशन को मिले रजिस्टरेशन टोकन से मेल खाता हो. इसमें कोई वर्ण न काटें या कोई और वर्ण न जोड़ें. |
बिना रजिस्टर किए इस्तेमाल किया जा रहा डिवाइस | 200 + error:NotRegistered | कई मामलों में, मौजूदा रजिस्ट्रेशन टोकन अमान्य हो सकता है. इनमें ये भी शामिल हैं:
|
पैकेज का नाम अमान्य है | 200 + error:InvalidPackageName | पक्का करें कि मैसेज, ऐसे रजिस्ट्रेशन टोकन को भेजा गया हो जिसका पैकेज का नाम, अनुरोध में दी गई वैल्यू से मेल खाता हो. |
प्रमाणीकरण गड़बड़ी | 401 | मैसेज भेजने के लिए इस्तेमाल किए गए ईमेल पते की पुष्टि नहीं की जा सकी. इसकी ये वजहें हो सकती हैं:
|
ईमेल भेजने वाले का नाम मेल न खाना | 200 + error:MismatchSenderId | रजिस्ट्रेशन टोकन, ईमेल भेजने वाले लोगों के किसी ग्रुप से जुड़ा होता है. जब कोई क्लाइंट ऐप्लिकेशन FCM के लिए रजिस्टर करता है, तो उसे यह बताना होगा कि किन लोगों को मैसेज भेजने की अनुमति है. क्लाइंट ऐप्लिकेशन पर मैसेज भेजते समय, आपको उनमें से किसी एक आईडी का इस्तेमाल करना चाहिए. किसी दूसरे आईडी पर स्विच करने पर, मौजूदा रजिस्ट्रेशन टोकन काम नहीं करेंगे. |
अमान्य JSON | 400 | देखें कि JSON मैसेज सही फ़ॉर्मैट में है या नहीं. साथ ही, यह भी देखें कि उसमें मान्य फ़ील्ड शामिल हैं या नहीं. उदाहरण के लिए, यह पक्का करना कि सही डेटा टाइप पास किया गया हो. |
अमान्य पैरामीटर | 400 + error:InvalidParameters | देखें कि दिए गए पैरामीटर का नाम और टाइप सही हो. |
मैसेज का साइज़ बहुत बड़ा है | 200 + error:MessageTooBig | देखें कि किसी मैसेज में शामिल पेलोड डेटा का कुल साइज़, FCM की सीमाओं से ज़्यादा न हो: ज़्यादातर मैसेज के लिए 4096 बाइट या विषयों के लिए मैसेज के मामले में 2048 बाइट. इसमें, की और वैल्यू, दोनों शामिल हैं. |
डेटा कुंजी अमान्य है | 200 से ज़्यादा गड़बड़ी:
InvalidDataKey |
देखें कि पेलोड डेटा में कोई ऐसी कुंजी (जैसे, from , gcm या google से शुरू होने वाली कोई वैल्यू) शामिल न हो जिसका इस्तेमाल FCM अंदरूनी तौर पर करता है. ध्यान दें कि कुछ शब्दों (जैसे, collapse_key ) का इस्तेमाल FCM भी करता है. हालांकि, इन्हें पेलोड में इस्तेमाल करने की अनुमति है. ऐसे में, पेलोड की वैल्यू को FCM की वैल्यू से बदल दिया जाएगा. |
टाइम टू लाइव अमान्य है | 200 + error:InvalidTtl | पक्का करें कि time_to_live में इस्तेमाल की गई वैल्यू, सेकंड में कुल समय को दिखाने वाला पूर्णांक हो. यह समय 0 से 2,419,200 (चार हफ़्ते) के बीच होना चाहिए. |
समय खत्म हो गया (टाइम आउट) | 5xx या 200 + गड़बड़ी:उपलब्ध नहीं है | सर्वर, अनुरोध को समय पर प्रोसेस नहीं कर सका. उसी अनुरोध को फिर से भेजें. हालांकि, इसके लिए आपको:
ईमेल भेजने वाले जिन लोगों या कंपनियों की वजह से समस्याएं आती हैं उन्हें ब्लैकलिस्ट किया जा सकता है. |
सर्वर में गड़बड़ी | 500 या 200 + error:InternalServerError | अनुरोध को प्रोसेस करते समय सर्वर में गड़बड़ी हुई. "समयसीमा" में बताई गई ज़रूरी शर्तों का पालन करके, उसी अनुरोध को फिर से आज़माया जा सकता है. इसके लिए, ऊपर दी गई लाइन देखें. अगर गड़बड़ी बनी रहती है, तो कृपया Firebase की सहायता टीम से संपर्क करें. |
डिवाइस पर मैसेज भेजने की दर तय सीमा से ज़्यादा हो गई | 200 से ज़्यादा गड़बड़ी:
DeviceMessageRate Exceeded |
किसी डिवाइस पर मैसेज भेजने की दर बहुत ज़्यादा है. अगर कोई Apple ऐप्लिकेशन, APNs की तय सीमा से ज़्यादा दर से मैसेज भेजता है, तो उसे गड़बड़ी का यह मैसेज मिल सकता है इस डिवाइस पर भेजे जाने वाले मैसेज की संख्या कम करें और मैसेज भेजने की कोशिश फिर से करने के लिए, एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें. |
Topics पर मैसेज भेजने की दर तय सीमा से ज़्यादा हो गई है | 200 से ज़्यादा गड़बड़ी:
TopicsMessageRate Exceed |
किसी खास विषय के लिए सदस्यों को भेजे जाने वाले मैसेज की दर बहुत ज़्यादा है. इस विषय के लिए भेजे गए मैसेज की संख्या कम करें और फिर से मैसेज भेजने के लिए, एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें. |
APNs के अमान्य क्रेडेंशियल | 200 से ज़्यादा वाली गड़बड़ी:
InvalidApnsCredential |
Apple डिवाइस को टारगेट किया गया मैसेज नहीं भेजा जा सका, क्योंकि ज़रूरी APNs पुष्टि करने वाली कुंजी अपलोड नहीं की गई थी या उसकी समयसीमा खत्म हो गई है. देखें कि आपके डेवलपमेंट और प्रोडक्शन क्रेडेंशियल मान्य हैं या नहीं. |
डिवाइस ग्रुप मैनेजमेंट
नीचे दी गई टेबल में, डिवाइस ग्रुप बनाने, सदस्यों को जोड़ने, और हटाने के लिए कुंजियों की सूची दी गई है. ज़्यादा जानकारी के लिए, अपने प्लैटफ़ॉर्म के लिए बनी गाइड देखें. जैसे, iOS+ या Android.
पैरामीटर | इस्तेमाल | ब्यौरा |
---|---|---|
operation |
ज़रूरी है, स्ट्रिंग | चलाया जाने वाला ऑपरेशन.मान्य वैल्यू create ,
add , और remove हैं. |
notification_key_name |
ज़रूरी है, स्ट्रिंग | डिवाइस ग्रुप का वह नाम जो उपयोगकर्ता ने तय किया है. |
notification_key |
ज़रूरी है (create ऑपरेशन, स्ट्रिंग |
डिवाइस ग्रुप का यूनीक आइडेंटिफ़ायर. यह वैल्यू, create ऑपरेशन के सही तरीके से होने पर रिस्पॉन्स में दिखती है. साथ ही, डिवाइस ग्रुप पर होने वाले सभी बाद के ऑपरेशन के लिए ज़रूरी है. |
registration_ids |
ज़रूरी है, स्ट्रिंग का कलेक्शन | जो डिवाइस टोकन जोड़ने या हटाने हैं. अगर किसी डिवाइस ग्रुप से सभी मौजूदा रजिस्ट्रेशन टोकन हटाए जाते हैं, तो FCM उस डिवाइस ग्रुप को मिटा देता है. |