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

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

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

किसी ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. साथ ही, ऐप्लिकेशन इंस्टेंस का टोकन इस तरह से दें:

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

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

इंस्टेंस आईडी एपीआई की मदद से, ऐप्लिकेशन इंस्टेंस के लिए रिलेशनशिप मैप बनाए जा सकते हैं. उदाहरण के लिए, किसी रजिस्ट्रेशन टोकन को 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 ऐप्लिकेशन इंस्टेंस अपडेट करने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. साथ ही, 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 टोकन के लिए, रजिस्ट्रेशन टोकन बनाना

इंस्टेंस आईडी सेवा के batchImport तरीके का इस्तेमाल करके, मौजूदा iOS APNs टोकन को Firebase Cloud Messaging में एक साथ इंपोर्ट किया जा सकता है. साथ ही, उन्हें मान्य रजिस्ट्रेशन टोकन से मैप किया जा सकता है. इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. साथ ही, 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 : उन ऐप्लिकेशन इंस्टेंस के APNs टोकन का कलेक्शन जिन्हें आपको जोड़ना या हटाना है. हर अनुरोध में ज़्यादा से ज़्यादा 100 टोकन.

नतीजे

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

  • APNs टोकन.
  • स्थिति चुनें. OK या गड़बड़ी का कोई मैसेज, जिसमें गड़बड़ी की जानकारी दी गई हो.
  • सफल नतीजों के लिए, वह रजिस्ट्रेशन टोकन जिसे 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) - सेवा उपलब्ध नहीं है. एक्स्पोनेंशियल बैकऑफ़ के साथ अनुरोध को फिर से भेजें.