सर्वर साइड पर लागू करना ज़रूरी नहीं है. अगर आपको ये कार्रवाइयां करनी हैं, तो इंस्टेंस आईडी सेवा का इस्तेमाल करें:
- ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाएं. ऐप्लिकेशन टोकन की पुष्टि करें या उस ऐप्लिकेशन इंस्टेंस के बारे में ज़्यादा जानकारी पाएं जिसने टोकन बनाया है.
- ऐप्लिकेशन इंस्टेंस के लिए, संबंध दिखाने वाले मैप बनाना. ऐप्लिकेशन इंस्टेंस और इकाइयों के बीच संबंध बनाएं.
- APNs टोकन के लिए रजिस्ट्रेशन टोकन बनाएं. इस एपीआई की मदद से, मौजूदा APNs टोकन को एक साथ इंपोर्ट किया जा सकता है. साथ ही, उन्हें FCM के लिए मान्य रजिस्ट्रेशन टोकन से मैप किया जा सकता है.
ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाना
किसी ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाने के लिए, इस एंडपॉइंट पर Instance ID सेवा को कॉल करें. साथ ही, ऐप्लिकेशन इंस्टेंस का टोकन इस तरह दें:
https://iid.googleapis.com/iid/info/IID_TOKEN
पैरामीटर
Authorization: Bearer <access_token>
. इस पैरामीटर को हेडर में सेट करें.Authorization
हेडर की वैल्यू के तौर पर, कम समय के लिए मान्य OAuth2 टोकन जोड़ें. इस टोकन को पाने के बारे में ज़्यादा जानने के लिए, क्रेडेंशियल मैन्युअल तरीके से देना लेख पढ़ें.access_token_auth: true
. इस पैरामीटर को हेडर में सेट करें.- [ज़रूरी नहीं] बूलियन
details
: इस क्वेरी पैरामीटर कोtrue
पर सेट करें, ताकि आपको इस टोकन से जुड़ी FCM की विषय सदस्यता की जानकारी (अगर कोई हो) मिल सके. अगर कोई वैल्यू तय नहीं की गई है, तो डिफ़ॉल्ट वैल्यूfalse
होती है.
नतीजे
कॉल पूरा होने पर, जवाब के तौर पर एचटीटीपी स्टेटस 200 और यह जानकारी देने वाला JSON ऑब्जेक्ट मिलता है:
application
- टोकन से जुड़ा पैकेज का नाम.authorizedEntity
- यह टोकन को डेटा भेजने के लिए अधिकृत projectId है.applicationVersion
- ऐप्लिकेशन का वर्शन.platform
- यहANDROID
,IOS
याCHROME
वैल्यू दिखाता है. इससे पता चलता है कि टोकन किस डिवाइस प्लैटफ़ॉर्म से जुड़ा है.
अगर details
फ़्लैग सेट है, तो:
rel
- टोकन से जुड़े संबंध. उदाहरण के लिए, विषय के हिसाब से सदस्यताएं पाने वालों की सूची.
GET
अनुरोध का उदाहरण
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
उदाहरण के तौर पर नतीजा
HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
ऐप्लिकेशन इंस्टेंस के लिए रिलेशनशिप मैप बनाना
Instance ID API की मदद से, ऐप्लिकेशन इंस्टेंस के लिए संबंध मैप बनाए जा सकते हैं. उदाहरण के लिए, किसी रजिस्ट्रेशन टोकन को किसी FCM विषय से मैप किया जा सकता है. इससे ऐप्लिकेशन का इंस्टेंस उस विषय की सदस्यता ले लेता है. यह एपीआई, इस तरह के संबंध बनाने के तरीके उपलब्ध कराता है. इन संबंधों को अलग-अलग और एक साथ कई लोगों के साथ बनाया जा सकता है.
किसी ऐप्लिकेशन इंस्टेंस के लिए रिलेशन मैपिंग बनाना
रजिस्ट्रेशन टोकन और काम करने वाले संबंध की जानकारी देने पर, मैपिंग बनाई जा सकती है. उदाहरण के लिए, किसी ऐप्लिकेशन इंस्टेंस को FCM विषय की सदस्यता लेने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल किया जा सकता है. साथ ही, ऐप्लिकेशन इंस्टेंस का टोकन इस तरह दिया जा सकता है:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
पैरामीटर
Authorization: Bearer <access_token>
. इस पैरामीटर को हेडर में सेट करें.Authorization
हेडर की वैल्यू के तौर पर, कम समय के लिए मान्य OAuth2 टोकन जोड़ें. इस टोकन को पाने के बारे में ज़्यादा जानने के लिए, क्रेडेंशियल मैन्युअल तरीके से देना लेख पढ़ें.access_token_auth: true
. इस पैरामीटर को हेडर में सेट करें.
नतीजे
अनुरोध पूरा होने पर, कॉल से एचटीटीपी स्टेटस 200 मिलता है.
POST
अनुरोध का उदाहरण
https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
उदाहरण के तौर पर नतीजा
HTTP 200 OK
{}
ऐप्लिकेशन के एक से ज़्यादा इंस्टेंस के लिए, संबंध दिखाने वाले मैप मैनेज करना
इंस्टेंस आईडी सेवा के बैच तरीकों का इस्तेमाल करके, ऐप्लिकेशन इंस्टेंस को बैच में मैनेज किया जा सकता है. उदाहरण के लिए, किसी FCM विषय में ऐप्लिकेशन इंस्टेंस को एक साथ जोड़ा या हटाया जा सकता है. हर एपीआई कॉल में 1,000 ऐप्लिकेशन इंस्टेंस तक अपडेट करने के लिए, इस एंडपॉइंट पर Instance ID सेवा को कॉल करें. साथ ही, JSON बॉडी में ऐप्लिकेशन इंस्टेंस टोकन दें:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
पैरामीटर
Authorization: Bearer <access_token>
. इस पैरामीटर को हेडर में सेट करें.Authorization
हेडर की वैल्यू के तौर पर, कम समय के लिए मान्य OAuth2 टोकन जोड़ें. इस टोकन को पाने के बारे में ज़्यादा जानने के लिए, क्रेडेंशियल मैन्युअल तरीके से देना लेख पढ़ें.access_token_auth: true
. इस पैरामीटर को हेडर में सेट करें.to
: विषय का नाम.registration_tokens
: उन ऐप्लिकेशन इंस्टेंस के लिए IID टोकन का कलेक्शन जिन्हें आपको जोड़ना या हटाना है.
नतीजे
अनुरोध पूरा होने पर, कॉल से एचटीटीपी स्टेटस 200 मिलता है. अगर नतीजे में कोई जानकारी नहीं दिखती है, तो इसका मतलब है कि टोकन के लिए सदस्यता सफलतापूर्वक ले ली गई है. सदस्यता लेने में हुई गड़बड़ियों के लिए, नतीजे में इनमें से कोई एक गड़बड़ी कोड शामिल होता है:
- NOT_FOUND — रजिस्ट्रेशन टोकन मिटा दिया गया है या ऐप्लिकेशन अनइंस्टॉल कर दिया गया है.
- INVALID_ARGUMENT — दिया गया रजिस्ट्रेशन टोकन, Sender ID के लिए मान्य नहीं है.
- INTERNAL — बैकएंड सर्वर किसी वजह से काम नहीं कर रहा है. अनुरोध को फिर से भेजें.
- TOO_MANY_TOPICS — ऐप्लिकेशन के हर इंस्टेंस के लिए बहुत ज़्यादा विषयों का इस्तेमाल किया गया है.
- RESOURCE_EXHAUSTED — कम समय में सदस्यता लेने या छोड़ने के बहुत ज़्यादा अनुरोध किए गए हैं. एक्स्पोनेंशियल बैकऑफ़ के साथ फिर से कोशिश करें.
POST
अनुरोध का उदाहरण
https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
{
"to": "/topics/movies",
"registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}
उदाहरण के तौर पर नतीजा
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
APNs टोकन के लिए रजिस्ट्रेशन टोकन बनाना
Instance ID सेवा के batchImport
तरीके का इस्तेमाल करके, iOS APNs के मौजूदा टोकन को Firebase Cloud Messaging में एक साथ इंपोर्ट किया जा सकता है. साथ ही, उन्हें मान्य रजिस्ट्रेशन टोकन से मैप किया जा सकता है. इस एंडपॉइंट पर Instance ID सेवा को कॉल करें. साथ ही, JSON बॉडी में APNs टोकन की सूची दें:
https://iid.googleapis.com/iid/v1:batchImport
जवाब के मुख्य हिस्से में, इंस्टेंस आईडी रजिस्ट्रेशन टोकन का एक कलेक्शन होता है. इनका इस्तेमाल, APNs डिवाइस टोकन से जुड़े डिवाइसों को FCM मैसेज भेजने के लिए किया जा सकता है.
पैरामीटर
Authorization: Bearer <access_token>
. इस पैरामीटर को हेडर में सेट करें.Authorization
हेडर की वैल्यू के तौर पर, कम समय के लिए मान्य OAuth2 टोकन जोड़ें. इस टोकन को पाने के बारे में ज़्यादा जानने के लिए, क्रेडेंशियल मैन्युअल तरीके से देना लेख पढ़ें.access_token_auth: true
. इस पैरामीटर को हेडर में सेट करें.application
: ऐप्लिकेशन का बंडल आईडी.sandbox
: बूलियन वैल्यू, जो सैंडबॉक्स एनवायरमेंट (TRUE) या प्रोडक्शन (FALSE) के बारे में बताती हैapns_tokens
: यह उन ऐप्लिकेशन इंस्टेंस के एपीएन टोकन का कलेक्शन है जिन्हें आपको जोड़ना या हटाना है. हर अनुरोध में ज़्यादा से ज़्यादा 100 टोकन इस्तेमाल किए जा सकते हैं.
नतीजे
अनुरोध पूरा होने पर, कॉल में एचटीटीपी स्टेटस 200 और JSON फ़ॉर्मैट में नतीजे का मुख्य हिस्सा दिखता है. अनुरोध में दिए गए हर APNs टोकन के लिए, नतीजों की सूची में यह जानकारी शामिल होती है:
- APNs टोकन.
- स्थिति चुनें. 'ठीक है' या गड़बड़ी का मैसेज.
- नतीजे पाने के लिए, रजिस्ट्रेशन टोकन ज़रूरी है. यह टोकन, APNs टोकन के साथ FCM मैप करता है.
POST
अनुरोध का उदाहरण
https://iid.googleapis.com/iid/v1:batchImport
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth:true
{
"application": "com.google.FCMTestApp",
"sandbox":false,
"apns_tokens":[
"368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
]
}
उदाहरण के तौर पर नतीजा
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
गड़बड़ी के रिस्पॉन्स
Instance ID सर्वर एपीआई को किए गए कॉल, ये एचटीटीपी गड़बड़ी कोड दिखाते हैं:
HTTP status 400 (Bad request)
- अनुरोध पैरामीटर मौजूद नहीं हैं या अमान्य हैं. गड़बड़ी के बारे में ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज देखें.HTTP status 401 (Unauthorized)
- अनुमति देने वाला हेडर अमान्य है.HTTP status 403 (Forbidden)
- पुष्टि करने वाले हेडर का डेटा,authorizedEntity
से मेल नहीं खाता.HTTP status 404 (Not found)
- अमान्य एचटीटीपी पाथ या आईआईडी टोकन नहीं मिला. गड़बड़ी के बारे में ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज देखें.HTTP status 503 (Service unavailable)
- सेवा उपलब्ध नहीं है. एक्स्पोनेंशियल बैकऑफ़ के साथ अनुरोध को फिर से भेजें.