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

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

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

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

 https://iid.googleapis.com/iid/info/IID_TOKEN

पैरामीटर

  • Authorization: कुंजी=YOUR_API_KEY. इस पैरामीटर को हेडर में सेट करें.
  • [ज़रूरी नहीं] बूलियन details: इस टोकन पैरामीटर से true में सेट करें, ताकि इस टोकन से FCM या GCM विषय की सदस्यता की जानकारी (अगर कोई हो) मिल सके. इसकी जानकारी न देने पर, डिफ़ॉल्ट रूप से false पर सेट हो जाता है.

नतीजे

कॉल पूरा होने पर, एचटीटीपी स्टेटस 200 और JSON ऑब्जेक्ट में ये चीज़ें दिखती हैं:

  • application - टोकन से जुड़ा पैकेज नाम.
  • authorizedEntity - प्रोजेक्ट आईडी को टोकन भेजने की अनुमति दी गई है.
  • applicationVersion - ऐप्लिकेशन का वर्शन.
  • appSigner - पैकेज पर हस्ताक्षर के लिए sha1 फ़िंगरप्रिंट. यह बताता है कि किस पक्ष ने ऐप्लिकेशन पर हस्ताक्षर किए हैं. उदाहरण के लिए,Play Store.
  • platform - ANDROID, IOS या CHROME को दिखाता है, ताकि यह बताया जा सके कि यह टोकन किस डिवाइस प्लैटफ़ॉर्म पर मौजूद है.

अगर details फ़्लैग सेट है, तो:

  • rel - टोकन से जुड़े संबंध. उदाहरण के लिए, विषय की सदस्यताओं की सूची.

GET अनुरोध का उदाहरण

https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

उदाहरण के तौर पर नतीजा

HTTP 200 OK
{
  "application":"com.iid.example",
  "authorizedEntity":"123456782354",
  "platform":"Android",
  "appSigner":"1a2bc3d4e5"
  "rel":{
    "topics":{
      "topicname1":{"addDate":"2015-07-30"},
      "topicname2":{"addDate":"2015-07-30"},
      "topicname3":{"addDate":"2015-07-30"},
      "topicname4":{"addDate":"2015-07-30"}
    }
  }
}

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

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

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

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

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

पैरामीटर

  • Authorization: कुंजी=YOUR_API_KEY. इस पैरामीटर को हेडर में सेट करें.

नतीजे

पूरा होने पर, कॉल एचटीटीपी स्टेटस 200 दिखाता है.

POST अनुरोध का उदाहरण

https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

उदाहरण के तौर पर नतीजा

HTTP 200 OK
{}

एक से ज़्यादा ऐप्लिकेशन इंस्टेंस के लिए, संबंध वाले मैप मैनेज करना

इंस्टेंस आईडी सेवा और's बैच के तरीकों का इस्तेमाल करके, आप ऐप्लिकेशन इंस्टेंस का बैच मैनेज कर सकते हैं. उदाहरण के लिए, आप FCM या GCM विषय से जुड़े ऐप्लिकेशन इंस्टेंस को एक साथ जोड़ सकते हैं या हटा सकते हैं. हर एपीआई कॉल के लिए ज़्यादा से ज़्यादा 1,000 ऐप्लिकेशन इंस्टेंस अपडेट करने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. साथ ही, JSON बॉडी में ऐप्लिकेशन इंस्टेंस टोकन उपलब्ध कराएं:

 https://iid.googleapis.com/iid/v1:batchAdd

 https://iid.googleapis.com/iid/v1:batchRemove

पैरामीटर

  • Authorization: कुंजी=YOUR_API_KEY. इस पैरामीटर को हेडर में सेट करें.
  • to : विषय का नाम.
  • registration_tokens : ऐप्लिकेशन के उन इंस्टेंस के लिए आईआईडी टोकन की कैटगरी जिन्हें आप जोड़ना या हटाना चाहते हैं.

नतीजे

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

  • NOT_found — रजिस्ट्रेशन टोकन मिटा दिया गया है या ऐप्लिकेशन अनइंस्टॉल कर दिया गया है.
  • ClaimReview_PUBLISHER — दिया गया रजिस्ट्रेशन टोकन, भेजने वाले के आईडी के लिए मान्य नहीं है.
  • आंतरिक — बैकएंड सर्वर अज्ञात कारणों से विफल रहा. फिर से अनुरोध करें.
  • TOO_MANY_TOPIC — हर ऐप्लिकेशन इंस्टेंस में बहुत ज़्यादा विषय.

POST अनुरोध का उदाहरण

https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization:key=API_KEY
{
   "to": "/topics/movies",
   "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}

उदाहरण के तौर पर नतीजा

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}

APN टोकन के लिए रजिस्ट्रेशन टोकन बनाना

इंस्टेंस आईडी सेवा और batchImport के तरीके का इस्तेमाल करके, आप मौजूदा iOS एपीएन टोकन को Google Cloud Messaging या Firebase क्लाउड से मैसेज में एक साथ इंपोर्ट कर सकते हैं. उन्हें मान्य रजिस्ट्रेशन टोकन के साथ मैप कर सकते हैं. इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें, जिसमें JSON बॉडी में एपीएन टोकन की सूची शामिल है:

 https://iid.googleapis.com/iid/v1:batchImport

रिस्पॉन्स बॉडी में इंस्टेंस आईडी रजिस्ट्रेशन टोकन की एक कैटगरी होती है. इसका इस्तेमाल FCM या GCM मैसेज को, उनसे जुड़े एपीएन डिवाइस टोकन में भेजने के लिए किया जा सकता है.

पैरामीटर

  • Authorization: कुंजी=YOUR_API_KEY. इस पैरामीटर को हेडर में सेट करें.
  • application : ऐप्लिकेशन का बंडल आईडी.
  • sandbox : सैंडबॉक्स परिवेश (TRUE) या प्रोडक्शन (FALSE) दिखाने के लिए बूलियन
  • apns_tokens : ऐप्लिकेशन के उन इंस्टेंस के लिए एपीएन टोकन की कैटगरी जिन्हें आप जोड़ना या हटाना चाहते हैं. हर अनुरोध के लिए ज़्यादा से ज़्यादा 100 टोकन.

नतीजे

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

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

POST अनुरोध का उदाहरण

https://iid.googleapis.com/iid/v1:batchImport
{
  "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"
        },
     ]
  }

पुश सदस्यताओं के लिए रजिस्ट्रेशन टोकन मैनेज करना

इंस्टेंस आईडी सेवा और वेब के तरीकों का इस्तेमाल करके, आप 'Firebase क्लाउड से मैसेज' की मौजूदा पुश सदस्यताएं इंपोर्ट कर सकते हैं. आप उन्हें अपडेट भी कर सकते हैं और मिटा सकते हैं.

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

पुश सदस्यताएं इंपोर्ट करें

आप InstanceID's वेब एंडपॉइंट का इस्तेमाल करके पुश सदस्यताओं को इंपोर्ट कर सकते हैं:

 https://iid.googleapis.com/v1/web/iid

अनुरोध में, OAuth 2.0 के ऐक्सेस टोकन पर सेट किया गया अनुमति वाला हेडर और आपकी ऐप्लिकेशन सर्वर कुंजी में सेट किया गया एक क्रिप्टो-की हेडर. साथ ही, अनुरोध के मुख्य हिस्से में PushSubscription ऑब्जेक्ट होना चाहिए.

रिस्पॉन्स बॉडी में रजिस्ट्रेशन टोकन शामिल होता है. इसका इस्तेमाल पेलोड को एन्क्रिप्ट (सुरक्षित) किए बिना, वेब ऐप्लिकेशन इंस्टेंस पर FCM या GCM मैसेज भेजने के लिए किया जा सकता है.

कंसोल पर अपनी VAPID कुंजी की जोड़ी अपलोड करें

कुंजियां इंपोर्ट करने के लिए, Firebase प्रोजेक्ट में मालिक के लेवल का ऐक्सेस होना चाहिए. अपने मौजूदा सार्वजनिक और निजी कुंजी को base64 यूआरएल सुरक्षित एन्कोड किए गए फ़ॉर्म में आयात करें:

  1. 'Firebase कंसोल' की सेटिंग पैनल में Cloud Messaging टैब खोलें और वेब कॉन्फ़िगरेशन सेक्शन तक स्क्रोल करें.
  2. वेब पुश सर्टिफ़िकेट टैब में जाकर, लिंक टेक्स्ट ढूंढें और चुनें. इसके बाद, मौजूदा कुंजी की जोड़ी को इंपोर्ट करें."
  3. की पेयर इंपोर्ट करें डायलॉग में, उससे जुड़ी फ़ील्ड में अपनी सार्वजनिक और निजी कुंजियां दें. इसके बाद, इंपोर्ट करें पर क्लिक करें. कंसोल, सार्वजनिक कुंजी वाली स्ट्रिंग और जोड़े जाने की तारीख दिखाता है.

OAuth2 टोकन फिर से पाएं: ऐक्सेस टोकन को कम से कम करने के लिए क्रेडेंशियल का इस्तेमाल करें

अनुरोध के लिए ऐक्सेस टोकन बनाने के लिए, आपको ऐक्सेस टोकन पूरा करना होगा और उसे एचटीटीपी अनुरोध में जोड़ना होगा.

नोड.js

 function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

Python

def _get_access_token():
  """Retrieve a valid access token that can be used to authorize requests.

  :return: Access token.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      'service-account.json', SCOPES)
  access_token_info = credentials.get_access_token()
  return access_token_info.access_token

Java

private static String getAccessToken() throws IOException {
  GoogleCredentials googleCredentials = GoogleCredentials
          .fromStream(new FileInputStream("service-account.json"))
          .createScoped(Arrays.asList(SCOPES));
  googleCredentials.refreshAccessToken();
  return googleCredentials.getAccessToken().getTokenValue();
}

FCM का ऐक्सेस देने के लिए, अनुरोध करने का https://www.googleapis.com/auth/firebase.messaging.

पैरामीटर

  • अनुमति देना: Bearer <access_token>. इस पैरामीटर को हेडर में सेट करें.
  • क्रिप्टो-की: p256ecdsa=APPLICATION_PUBLIC_KEY. इस पैरामीटर को हेडर में सेट करें.
  • अनुरोध का मुख्य हिस्सा: PushSubscription.toJson(). पुश पेज को बिना पार्स किए, एचटीटीपी के मुख्य भाग में पास करें. सामग्री PushSubscription के W3C एन्कोडिंग से मेल खाती है.

जवाब

कॉल सफल होने पर, एचटीटीपी स्टेटस 200 'ठीक है' पर क्लिक करता है. साथ ही, JSON के नतीजे वाले मुख्य हिस्से में IID टोकन शामिल होता है.

POST अनुरोध का उदाहरण

 https://iid.googleapis.com/v1/web/iid
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

उदाहरण के तौर पर नतीजा

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

पुश सदस्यताएं अपडेट करें

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

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN:refresh

पैरामीटर

  • अनुमति देना: Bearer <access_token>. इस पैरामीटर को हेडर में सेट करें.
  • क्रिप्टो-की: p256ecdsa=APPLICATION_PUBLIC_KEY. इस पैरामीटर को हेडर में सेट करें.
  • अनुरोध का मुख्य हिस्सा: PushSubscription.toJson(). बिना पार्स किए एचटीटीपी पेज पर पुश सदस्यता पास करें. सामग्री PushSubscription के W3C एन्कोडिंग से मेल खाती है.

नतीजे

कॉल पूरा होने पर, एचटीटीपी स्टेटस 200 और रजिस्ट्रेशन टोकन मिलता है. यह वही टोकन हो सकता है जिसे आपने अनुरोध में पास किया है या कोई नया टोकन हो सकता है.

HTTP 200 OK
{
 "token":"KctODamlM4:CKrh_PC...cl"
}

POST अनुरोध का उदाहरण

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CKrh_PC...cl:refresh
 Content-Type:application/json
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
 Crypto-Key:p256ecdsa=BFv5XHxdkZgpQzCb-...8uI42kf4A4USEIMo
 {
   "endpoint": "https://fcm.googleapis.com/fcm/send/dS4xerbSlqU:APb...aRs4QP",
   "keys": {
         "auth": "7cdY...xxjwz46Q"",
         "p256dh": "BH7xPjScJe...z9lbIZDmOV_c"
    }
 }

उदाहरण के तौर पर नतीजा

 HTTP 200 OK
 {
  "token":"KctODamlM4:CI2k_HHw...3P1"
 }

पुश सदस्यताएं मिटाना

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

Push कोई सदस्यता मिटाने के लिए, DELETE का एक अनुरोध भेजें:

 https://iid.googleapis.com/v1/web/iid/REGISTRATION_TOKEN

DELETE अनुरोध का उदाहरण

 https://iid.googleapis.com/v1/web/iid/KctODamlM4:CI2k_HHw...3P1
 Authorization:Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

उदाहरण के तौर पर नतीजा

 HTTP 200 OK {}

गड़बड़ी के जवाब

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

  • 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) - सेवा उपलब्ध नहीं है. घातीय बैकऑफ़ के लिए अनुरोध फिर से करें.