Sunucu Referansı

Sunucu uygulaması isteğe bağlıdır. Bu işlemleri gerçekleştirmek istiyorsanız Örnek Kimliği hizmetini kullanın:

Uygulama örnekleri hakkında bilgi edinme

Bir uygulama örneği hakkında bilgi almak için bu uç noktada Örnek Kimliği hizmetini çağırın ve uygulama örneğinin jetonunu aşağıda gösterildiği 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 üstbilgisinin değeri olarak kısa ömürlü 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.
  • [isteğe bağlı] Boole details: Bu jetonla ilişkili FCM konu abonelik bilgilerini (varsa) almak için bu sorgu parametresini true olarak ayarlayın. Belirtilmediğinde varsayılan olarak false olur.

Sonuçlar

Başarılı olursa çağrı, 200 HTTP durumunu ve aşağıdakileri içeren bir JSON nesnesini döndürür:

  • application: Jetonla ilişkilendirilen 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çin ANDROID, IOS veya CHROME 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'sı, uygulama örnekleri için ilişki eşlemeleri oluşturmanıza olanak tanır. Örneğin, uygulama örneğini konuya abone olarak bir FCM konusuyla bir kayıt jetonunu eşleyebilirsiniz. API, bu tür ilişkileri hem ayrı ayrı 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 göz önüne alındığında eşleme oluşturabilirsiniz. Örneğin, bir uygulama örneğini bu uç noktadaki Örnek Kimliği hizmetini çağırarak ve uygulama örneğinin jetonunu aşağıda gösterildiği gibi sağlayarak bir FCM konusuna abone yapabilirsiniz:

 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 üstbilgisinin değeri olarak kısa ömürlü 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ı 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 eşlemelerini yönetme

Örnek Kimliği hizmetinin toplu yöntemlerini kullanarak, uygulama örneklerinin toplu yönetimini gerçekleştirebilirsiniz. Örneğin, bir FCM konusuna uygulama örneklerinin toplu olarak eklenmesini veya kaldırılmasını sağlayabilirsiniz. API çağrısı başına 1.000'e kadar uygulama örneğini güncellemek için JSON gövdesinde uygulama örneği jetonlarını sağlayarak bu uç noktadaki Örnek Kimliği hizmetini çağırı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 üstbilgisinin değeri olarak kısa ömürlü 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.
  • to : Konu adı.
  • registration_tokens : Eklemek veya kaldırmak istediğiniz uygulama örneklerinin IID jetonları dizisi.

Sonuçlar

Başarılı olursa çağrı, HTTP durumu 200 döndürür. Boş sonuçlar, jeton aboneliğinin başarılı olduğunu gösterir. Başarısız 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.
  • DAHİLİ — Arka uç sunucusu bilinmeyen nedenlerden dolayı başarısız oldu. İsteği yeniden deneyin.
  • TOO_MANY_TOPICS — Uygulama örneği başına aşırı sayıda konu.
  • RESOURCE_EXHAUSTED: Kısa bir süre içinde çok fazla abonelik veya abonelik iptali 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

Örnek kimliği hizmetinin batchImport yöntemini kullanarak mevcut iOS APNs jetonlarını Firebase Cloud Messaging'e toplu olarak aktararak 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 bir listesini sağlayın:

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

Yanıt gövdesi, FCM mesajlarını ilgili APNs cihaz jetonuna göndermek için kullanıma hazır olan bir Örnek Kimliği kayıt jetonları dizisi içerir.

Parametreler

  • Authorization: Bearer <access_token>. Bu parametreyi başlıkta ayarlayın. Authorization üstbilgisinin değeri olarak kısa ömürlü 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.
  • application : Uygulamanın paket kimliği.
  • sandbox : Korumalı alan ortamını (TRUE) veya üretimi (FALSE) belirten boole değeri
  • apns_tokens : Eklemek veya kaldırmak istediğiniz uygulama örneklerine ait APN jetonları dizisi. İstek başına maksimum 100 jeton.

Sonuçlar

Başarılı olursa çağrı, HTTP durumu 200 ve JSON sonuç gövdesini döndürür. İstekte sağlanan her APN jetonu için sonuçlar listesinde şunlar bulunur:

  • APNs jetonu.
  • Durum. Tamam veya hatayı açıklayan bir hata mesajı.
  • Başarılı sonuçlar elde etmek 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) - istek parametreleri eksik veya geçersiz. Ayrıntılı bilgi için hata mesajlarını inceleyin.
  • HTTP status 401 (Unauthorized) - Yetkilendirme üst bilgisi geçersiz.
  • HTTP status 403 (Forbidden): Yetkilendirme başlığı 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ı inceleyin.
  • HTTP status 503 (Service unavailable): Hizmet kullanılamıyor. İsteği eksponansiyel geri yüklemeyle yeniden deneyin.