सर्वर रेफ़रंस

सर्वर पर लागू करना ज़रूरी नहीं है. अगर आपको ये काम करने हैं, तो इंस्टेंस आईडी सेवा का इस्तेमाल करें:

ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाना

किसी ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाने के लिए, इस एंडपॉइंट पर 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 - टोकन को भेजने के लिए अनुमति वाला प्रोजेक्ट आईडी.
  • 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"}
    }
  }
}

ऐप्लिकेशन इंस्टेंस के लिए रिलेशनशिप मैप बनाना

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

किसी ऐप्लिकेशन इंस्टेंस के लिए रिलेशन मैपिंग बनाना

रजिस्ट्रेशन टोकन और काम करने वाले संबंध के आधार पर, मैपिंग बनाई जा सकती है. उदाहरण के लिए, इस एंडपॉइंट पर Instance ID सेवा को कॉल करके, किसी ऐप्लिकेशन इंस्टेंस को 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 ऐप्लिकेशन इंस्टेंस अपडेट करने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. इसके लिए, 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 — दिया गया रजिस्ट्रेशन टोकन, ईमेल भेजने वाले आईडी के लिए मान्य नहीं है.
  • इंटरनल — बैकएंड सर्वर किसी अज्ञात वजह से काम नहीं कर रहा है. अनुरोध फिर से करें.
  • 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 : सैंडबॉक्स एनवायरमेंट (सही) या प्रोडक्शन (गलत) के बारे में बताने के लिए बूलियन
  • apns_tokens : उन ऐप्लिकेशन इंस्टेंस के लिए एपीएन टोकन का कलेक्शन जिन्हें आपको जोड़ना या हटाना है. हर अनुरोध के लिए, ज़्यादा से ज़्यादा 100 टोकन इस्तेमाल किए जा सकते हैं.

नतीजे

अनुरोध पूरा होने पर, कॉल से एचटीटीपी स्टेटस 200 और JSON फ़ॉर्मैट में नतीजा मिलता है. अनुरोध में दिए गए हर APNs टोकन के लिए, नतीजों की सूची में ये शामिल होते हैं:

  • APNs टोकन.
  • स्थिति चुनें. 'ठीक है' या गड़बड़ी के बारे में बताने वाला गड़बड़ी का मैसेज.
  • सही नतीजे पाने के लिए, रजिस्ट्रेशन टोकन, जिसे FCM, APNs टोकन से मैप करता है.

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"
        },
     ]
  }

गड़बड़ी के रिस्पॉन्स

इंस्टेंस आईडी सर्वर एपीआई को कॉल करने पर, ये एचटीटीपी गड़बड़ी कोड दिखते हैं:

  • HTTP status 400 (Bad request) - अनुरोध पैरामीटर मौजूद नहीं हैं या अमान्य हैं. ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज देखें.
  • HTTP status 401 (Unauthorized) - अनुमति हेडर अमान्य है.
  • HTTP status 403 (Forbidden) - अनुमति हेडर, authorizedEntity से मेल नहीं खाता.
  • HTTP status 404 (Not found) - अमान्य एचटीटीपी पाथ या IID टोकन नहीं मिला. ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज देखें.
  • HTTP status 503 (Service unavailable) - सेवा उपलब्ध नहीं है. एक्सपोनेंशियल बैकऑफ़ के साथ अनुरोध फिर से करें.