सर्वर को लागू करना ज़रूरी नहीं है. अगर आपको ये काम करने हैं, तो इंस्टेंस आईडी सेवा का इस्तेमाल करें:
- ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाएं. ऐप्लिकेशन टोकन की पुष्टि करें या टोकन बनाने वाले ऐप्लिकेशन इंस्टेंस के बारे में ज़्यादा जानकारी पाएं.
- ऐप्लिकेशन इंस्टेंस के लिए रिलेशनशिप मैप बनाएं. ऐप्लिकेशन इंस्टेंस और इकाइयों के बीच संबंध बनाएं.
- एपीएन टोकन के लिए रजिस्ट्रेशन टोकन बनाएं. यह एपीआई आपको मौजूदा एपीएन टोकन, एक साथ इंपोर्ट करने की सुविधा देता है. इससे, उन्हें FCM के लिए मान्य रजिस्ट्रेशन टोकन पर मैप किया जा सकता है.
ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाएं
किसी ऐप्लिकेशन इंस्टेंस के बारे में जानकारी पाने के लिए, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें. इसके लिए, ऐप्लिकेशन इंस्टेंस का टोकन इस तरह से उपलब्ध कराएं:
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_ अंदर — दिया गया रजिस्ट्रेशन टोकन, भेजने वाले के आईडी के लिए मान्य नहीं है.
- अंदरूनी — बैकएंड सर्वर कुछ इस तरह से काम नहीं कर सका जिसके बारे में जानकारी नहीं है. फिर से अनुरोध करें.
- 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"},
{},
]
}
एपीएन टोकन के लिए रजिस्ट्रेशन टोकन बनाएं
इंस्टेंस आईडी सेवा के batchImport
तरीके का इस्तेमाल करके, मौजूदा iOS एपीएन टोकन, Firebase क्लाउड से मैसेज में एक साथ इंपोर्ट किए जा सकते हैं. साथ ही, उन्हें मान्य रजिस्ट्रेशन टोकन से मैप किया जा सकता है. JSON के मुख्य भाग में एपीएन टोकन की सूची देकर, इस एंडपॉइंट पर इंस्टेंस आईडी सेवा को कॉल करें:
https://iid.googleapis.com/iid/v1:batchImport
जवाब के मुख्य हिस्से में इंस्टेंस आईडी रजिस्ट्रेशन टोकन का कलेक्शन होता है. ये टोकन, उनसे जुड़े एपीएन डिवाइस टोकन पर FCM मैसेज भेजने के लिए इस्तेमाल किए जाने के लिए तैयार हैं.
पैरामीटर
Authorization: Bearer <access_token>
. इस पैरामीटर को हेडर में सेट करें.Authorization
हेडर की वैल्यू के तौर पर, कुछ समय के लिए मान्य OAuth2 टोकन जोड़ें. इस टोकन को पाने के बारे में ज़्यादा जानने के लिए, मैन्युअल तरीके से क्रेडेंशियल देना लेख पढ़ें.access_token_auth: true
. इस पैरामीटर को हेडर में सेट करें.application
: ऐप्लिकेशन का बंडल आईडी.sandbox
: सैंडबॉक्स एनवायरमेंट (TRUE) या प्रोडक्शन (FALSE) को दिखाने के लिए बूलियनapns_tokens
: ऐप्लिकेशन के उन इंस्टेंस के लिए एपीएन टोकन का कलेक्शन जिन्हें आपको जोड़ना या हटाना है. एक अनुरोध पर ज़्यादा से ज़्यादा 100 टोकन.
नतीजे
कॉल पूरा होने पर, कॉल एचटीटीपी स्टेटस 200 और JSON नतीजे का मुख्य हिस्सा दिखाता है. अनुरोध में दिए गए हर 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"
},
]
}
गड़बड़ी के जवाब
इंस्टेंस आईडी सर्वर एपीआई को कॉल करने पर, यहां दिए गए एचटीटीपी गड़बड़ी कोड दिखते हैं:
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)
- सेवा उपलब्ध नहीं है. एक्सपोनेन्शियल बैकऑफ़ के साथ अनुरोध को फिर से करने की कोशिश करें.