Sunucu uygulaması isteğe bağlıdır. Aşağıdaki işlemleri yapmak istiyorsanız örnek kimliği hizmetini kullanın:
- Uygulama örnekleri hakkında bilgi edinin. Uygulama jetonlarını doğrulayın veya jetonu oluşturan uygulama örneği hakkında daha fazla bilgi edinin.
- Uygulama örnekleri için ilişki haritaları oluşturma. Uygulama örnekleri ve öğeler arasında ilişkiler oluşturun.
- APNs jetonları için kayıt jetonları oluşturun. Bu API, mevcut APNs jetonlarını FCM için geçerli kayıt jetonlarıyla eşleyerek toplu olarak içe aktarmanıza olanak tanır.
Uygulama örnekleri hakkında bilgi edinme
Bir uygulama örneği hakkında bilgi edinmek için bu uç noktada örnek kimliği hizmetini çağırın ve uygulama örneğinin jetonunu gösterildiği gibi sağlayın:
https://iid.googleapis.com/iid/info/IID_TOKEN
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi üstbilgide ayarlayın.Authorization
başlığının değeri olarak kısa ömürlü bir OAuth2 jetonu ekleyin. Bu jetonu edinme hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi üstbilgide ayarlayın.- [isteğe bağlı] boolean
details
: Bu jetonla ilişkili FCM konu başlığı abonelik bilgilerini (varsa) almak için bu sorgu parametresinitrue
olarak ayarlayın. Belirtilmediğinde varsayılan olarakfalse
olur.
Sonuçlar
Başarılı olduğunda çağrı, HTTP durumu 200'ü ve aşağıdakileri içeren bir JSON nesnesi döndürür:
application
: Jetonla ilişkili paket adı.authorizedEntity
: Jetonun gönderileceği proje kimliği.applicationVersion
- Uygulamanın sürümü.platform
: Jetonun ait olduğu cihaz platformunu belirtmek içinANDROID
,IOS
veyaCHROME
değerini döndürür.
details
işareti ayarlanmışsa:
rel
: Jetonla ilişkili ilişkiler. Örneğin, konu aboneliklerinin listesi.
Örnek GET
isteği
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
Örnek sonuç
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"}
}
}
}
Uygulama örnekleri için ilişki haritaları oluşturma
Instance ID API, uygulama örnekleri için ilişki haritaları oluşturmanıza olanak tanır. Örneğin, bir kayıt jetonunu FCM konusuna eşleyerek uygulama örneğini konuya abone edebilirsiniz. API, bu tür ilişkileri hem tek tek hem de toplu olarak oluşturma yöntemleri sunar.
Bir uygulama örneği için ilişki eşlemesi oluşturma
Kayıt jetonu ve desteklenen bir ilişki verildiğinde eşleme oluşturabilirsiniz. Örneğin, bu uç noktada örnek kimliği hizmetini çağırarak ve uygulama örneğinin jetonunu gösterildiği gibi sağlayarak bir uygulama örneğini FCM konusuna abone edebilirsiniz:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi üstbilgide ayarlayın.Authorization
başlığının değeri olarak kısa ömürlü bir OAuth2 jetonu ekleyin. Bu jetonu edinme hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi üstbilgide ayarlayın.
Sonuçlar
Başarılı olursa çağrı HTTP durumu 200'ü döndürür.
Örnek POST
isteği
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
Örnek sonuç
HTTP 200 OK
{}
Birden fazla uygulama örneği için ilişki haritalarını yönetme
Örnek Kimliği hizmetinin toplu yöntemlerini kullanarak uygulama örneklerinin toplu yönetimini gerçekleştirebilirsiniz. Örneğin, FCM konusuna toplu olarak uygulama örneği ekleyebilir veya kaldırabilirsiniz. API çağrısı başına 1.000'e kadar uygulama örneğini güncellemek için bu uç noktada örnek kimliği hizmetini çağırın ve JSON gövdesinde uygulama örneği jetonlarını sağlayın:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi üstbilgide ayarlayın.Authorization
başlığının değeri olarak kısa ömürlü bir OAuth2 jetonu ekleyin. Bu jetonu edinme hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi üstbilgide ayarlayın.to
: Konu adı.registration_tokens
: Eklemek veya kaldırmak istediğiniz uygulama örnekleri için IID jetonları dizisi.
Sonuçlar
Başarılı olursa çağrı HTTP durumu 200'ü döndürür. Boş sonuçlar, jeton için aboneliğin başarılı olduğunu gösterir. Başarısız olan abonelikler için sonuç, şu hata kodlarından birini içerir:
- NOT_FOUND: Kayıt jetonu silinmiş veya uygulama kaldırılmıştır.
- INVALID_ARGUMENT: Sağlanan kayıt jetonu, gönderen kimliği için geçerli değil.
- INTERNAL: Arka uç sunucusu bilinmeyen nedenlerle başarısız oldu. İsteği yeniden deneyin.
- TOO_MANY_TOPICS: Uygulama örneği başına çok fazla konu var.
- RESOURCE_EXHAUSTED: Kısa süre içinde çok fazla abonelik veya abonelikten çıkma isteği gönderildi. Eksponansiyel geri yüklemeyle yeniden deneyin.
Örnek POST
isteği
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..."],
}
Örnek sonuç
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
APNs jetonları için kayıt jetonları oluşturma
Örnek Kimliği hizmetinin batchImport
yöntemini kullanarak mevcut iOS APNs jetonlarını Firebase Cloud Messaging'e toplu olarak aktarabilir ve bunları geçerli kayıt jetonlarıyla eşleyebilirsiniz. Bu uç noktada örnek kimliği hizmetini çağırın ve JSON gövdesinde APNs jetonlarının listesini sağlayın:
https://iid.googleapis.com/iid/v1:batchImport
Yanıt gövdesinde, ilgili APNs cihaz jetonuna FCM mesajları göndermek için kullanılmaya hazır bir Instance ID kayıt jetonları dizisi bulunur.
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi üstbilgide ayarlayın.Authorization
başlığının değeri olarak kısa ömürlü bir OAuth2 jetonu ekleyin. Bu jetonu edinme hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi üstbilgide ayarlayın.application
: Uygulamanın paket kimliği.sandbox
: Sandbox ortamını (DOĞRU) veya üretim ortamını (YANLIŞ) belirtmek için kullanılan Boole değeri.apns_tokens
: Eklemek veya kaldırmak istediğiniz uygulama örnekleri için APN jetonları dizisi. İstek başına maksimum 100 jeton.
Sonuçlar
Başarılı olduğunda çağrı, HTTP durumu 200 ve bir JSON sonuç gövdesi döndürür. İstekle sağlanan her APNs jetonu için sonuç listesinde şunlar yer alır:
- APNs jetonu.
- Durum'a dokunun. Ya "Tamam" ya da hatayı açıklayan bir hata mesajı.
- Başarılı sonuçlar için FCM'nin APNs jetonuyla eşlediği kayıt jetonu.
Örnek POST
isteği
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"
]
}
Örnek sonuç
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
Hata yanıtları
Instance ID Server API'ye yapılan çağrılar aşağıdaki HTTP hata kodlarını döndürür:
HTTP status 400 (Bad request)
- İstek parametreleri eksik veya geçersiz. Ayrıntılı bilgi için hata mesajlarını kontrol edin.HTTP status 401 (Unauthorized)
- Yetkilendirme üst bilgisi geçersiz.HTTP status 403 (Forbidden)
- Yetkilendirme üstbilgisi,authorizedEntity
ile eşleşmiyor.HTTP status 404 (Not found)
- Geçersiz HTTP yolu veya IID jetonu bulunamadı. Ayrıntılı bilgi için hata mesajlarını kontrol edin.HTTP status 503 (Service unavailable)
- hizmet kullanılamıyor. İsteği eksponansiyel geri yüklemeyle yeniden deneyin.