Sunucu uygulaması isteğe bağlıdır. Aşağıdaki işlemleri gerçekleştirmek istiyorsanız Instance ID hizmetini kullanın:
- Uygulama örnekleri hakkında bilgi edinme. 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 ile varlıklar arasında ilişkiler oluşturun.
- APNs jetonları için kayıt jetonları oluşturun. Bu API, mevcut APN jetonlarını toplu olarak içe aktarmanıza ve FCM için geçerli kayıt jetonlarıyla eşlemenize olanak tanır.
Uygulama örnekleri hakkında bilgi edinme
Bir uygulama örneği hakkında bilgi edinmek için bu uç noktadaki Instance ID hizmetini çağırın ve uygulama örneğinin jetonunu aşağıdaki gibi sağlayın:
https://iid.googleapis.com/iid/info/IID_TOKEN
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi başlıkta ayarlayın.Authorization
başlığının değeri olarak kısa süreli bir OAuth2 jetonu ekleyin. Bu jetonu alma hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi başlıkta ayarlayın.- [isteğe bağlı] doğru/yanlış
details
: Bu jetonla ilişkili FCM konu aboneliği bilgilerini (varsa) almak için bu sorgu parametresinitrue
olarak ayarlayın. Belirtilmezse varsayılan olarakfalse
olur.
Sonuçlar
Başarılı olduğunda çağrı, HTTP 200 durum kodunu ve aşağıdakileri içeren bir JSON nesnesini döndürür:
application
: Jetonla ilişkili paket adı.authorizedEntity
: Jetona gönderme yetkisi olan 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 bir FCM konusuyla eşleyebilir, uygulama örneğini konuya abone edebilirsiniz. API, bu tür ilişkileri hem tek tek hem de toplu olarak oluşturmak için yöntemler sağlar.
Bir uygulama örneği için ilişki eşlemesi oluşturma
Bir kayıt jetonu ve desteklenen bir ilişki varsa eşleme oluşturabilirsiniz. Örneğin, bu uç noktadaki Instance ID hizmetini çağırarak uygulama örneğinin jetonunu sağlayarak uygulama örneğini bir FCM konusuna abone edebilirsiniz:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi başlıkta ayarlayın.Authorization
başlığının değeri olarak kısa süreli bir OAuth2 jetonu ekleyin. Bu jetonu alma hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama bölümüne bakın.access_token_auth: true
. Bu parametreyi başlıkta ayarlayın.
Sonuçlar
Başarılı olduğunda çağrı, HTTP 200 durum kodunu 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 örneklerini toplu olarak yönetebilirsiniz. Örneğin, bir FCM konusuna uygulama örneklerini toplu olarak ekleyebilir veya kaldırabilirsiniz. API çağrısı başına 1.000'e kadar uygulama örneğini güncellemek için bu uç noktadaki Instance-ID 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 başlıkta ayarlayın.Authorization
başlığının değeri olarak kısa süreli bir OAuth2 jetonu ekleyin. Bu jetonu alma hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi başlıkta ayarlayın.to
: Konu adı.registration_tokens
: Eklemek veya kaldırmak istediğiniz uygulama örneklerine ait IID jetonları dizisi.
Sonuçlar
Başarılı olduğunda çağrı, HTTP 200 durum kodunu döndürür. Boş sonuçlar, jeton için başarılı aboneliği gösterir. Başarısız aboneliklerde sonuç, aşağıdaki 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ç sunucu bilinmeyen bir nedenle başarısız oldu. İsteği yeniden deneyin.
- TOO_MANY_TOPICS: Uygulama örneği başına çok fazla konu.
- RESOURCE_EXHAUSTED: Kısa süre içinde çok fazla abonelik veya abonelikten çıkma isteği. 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
Instance ID hizmetinin batchImport
yöntemini kullanarak mevcut iOS APNs jetonlarını Firebase Cloud Messaging'e toplu olarak aktarabilir ve geçerli kayıt jetonlarıyla eşleyebilirsiniz. Bu uç noktada Instance ID hizmetini çağırın ve JSON gövdesinde APN jetonlarının listesini sağlayın:
https://iid.googleapis.com/iid/v1:batchImport
Yanıt gövdesi, ilgili APNs cihaz jetonuna FCM mesajları göndermek için kullanılabilecek bir Birim Kimliği kayıt jetonu dizisi içerir.
Parametreler
Authorization: Bearer <access_token>
. Bu parametreyi başlıkta ayarlayın.Authorization
başlığının değeri olarak kısa süreli bir OAuth2 jetonu ekleyin. Bu jetonu alma hakkında daha fazla bilgi için Kimlik bilgilerini manuel olarak sağlama başlıklı makaleyi inceleyin.access_token_auth: true
. Bu parametreyi başlıkta ayarlayın.application
: Uygulamanın paket kimliği.sandbox
: Korumalı alan ortamını (DOĞRU) veya prodüksiyonu (YANLIŞ) belirten boole değeriapns_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 200 durum kodunu ve JSON sonuç gövdesini döndürür. İstekte sağlanan her APNs jetonu için sonuçlar listesi şunları içerir:
- APNs jetonu.
- Durum'a dokunun. Tamam veya hatayı açıklayan bir hata mesajı.
- Başarılı sonuçlar için FCM'nin APNs jetonuyla eşleştirdiğ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 sunucu API'sine 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 üstbilgisiauthorizedEntity
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. Eksponansiyel geri yüklemeyle isteği yeniden deneyin.