Sunucu Referansı

Stay organized with collections Save and categorize content based on your preferences.

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 alın

Bir uygulama örneğiyle ilgili bilgi almak için bu uç noktada Örnek Kimliği hizmetini çağırarak gösterildiği gibi uygulama örneğinin jetonunu sağlayın:

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

Parametreler

  • Authorization: key=API_KEY. Bu parametreyi başlıkta ayarlayın.
  • [isteğe bağlı] boole details: Bu jetonla ilişkilendirilmiş FCM veya GCM konusu abonelik bilgilerini almak için bu sorgu parametresini true olarak ayarlayın. Belirtilmediğinde varsayılan olarak false değerine ayarlanır.

Sonuçlar

Başarıyla yapılan çağrı, HTTP durum 200'ü ve şunları içeren bir JSON nesnesi döndürür:

  • application - Jetonla ilişkili paket adı.
  • authorizedEntity - Jetona gönderme yetkisi olan projectId.
  • applicationVersion - uygulamanın sürümü.
  • Pakete uygulanan imzanın appSigner - sha1 parmak izi. Uygulamayı hangi tarafın imzaladığını belirtir (örneğin,Play Store).
  • 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?Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

Örnek sonuç

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"}
    }
  }
}

Uygulama örnekleri için ilişki eşlemeleri oluşturma

Örnek Kimliği API'si, uygulama örnekleri için ilişki eşlemeleri oluşturmanıza olanak sağlar. Örneğin, bir kayıt jetonunu Google Cloud Messaging konusuyla eşleyerek uygulama örneğini konuya abone yapabilirsiniz. API, bu ilişkileri hem tek tek hem de toplu olarak oluşturma yöntemleri sağlar.

Uygulama örneği için ilişki eşleme oluşturma

Bir kayıt jetonu ve desteklenen bir ilişki göz önünde bulundurulduğunda eşleme oluşturabilirsiniz. Örneğin, bir uygulama örneğini bir Google Cloud Messaging konusuna abone olmak için bu uç noktada Örnek Kimliği hizmetini çağırıp gösterildiği gibi uygulama örneğinin jetonunu sağlayabilirsiniz:

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

Parametreler

  • Authorization: key=API_KEY. Bu parametreyi başlıkta ayarlayın.

Sonuçlar

Arama başarılı olursa HTTP durumu 200 değerini 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:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

Ö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 veya GCM konusuna uygulama örneklerinin toplu olarak eklenmesini veya kaldırılmasını sağlayabilirsiniz. API çağrısı başına en fazla 1.000 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: key=API_KEY. 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

Arama başarılı olursa HTTP durumu 200 değerini döndürür. Boş sonuçlar, jeton için başarıyla abone olunduğunu gösterir. Başarısız abonelikler için sonuçta aşağıdaki hata kodlarından biri bulunur:

  • NOT_FOUND - Kayıt jetonu silinmiş veya uygulama kaldırılmış.
  • INVALID_RESULT - Sağlanan kayıt jetonu Gönderen Kimliği için geçerli değil.
  • DAHİLİ: Arka uç sunucusu bilinmeyen nedenlerle başarısız oldu. İsteği yeniden deneyin.
  • TOO_MANY_TOPICS - Uygulama örneği başına aşırı sayıda konu.
  • SOURCE_EXHAUSTED — Kısa bir süre içinde çok fazla abonelik veya abonelikten çıkma isteği sayısı. Eksponansiyel geri yüklemeyle tekrar deneyin.

Örnek POST isteği

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..."],
}

Örnek sonuç

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

APNs jetonları için kayıt jetonları oluşturun

Örnek kimliği hizmetinin batchImport yöntemini kullanarak mevcut iOS APN jetonlarını Google Cloud Messaging veya Firebase Cloud Messaging'e toplu olarak aktarabilir ve geçerli kayıt jetonlarıyla eşleyebilirsiniz. Bu uç noktada Örnek Kimliği hizmetini çağırarak JSON gövdesindeki APNs jetonlarının listesini sağlayın:

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

Yanıt gövdesi, ilgili APNs cihaz jetonuna FCM veya GCM iletileri göndermek için kullanılacak bir Örnek Kimlik kaydı jetonları dizisi içerir.

Parametreler

  • Authorization: key=API_KEY. Bu parametreyi başlıkta ayarlayın.
  • application : Uygulamanın paket kimliği.
  • sandbox : Korumalı alan ortamını (DOĞRU) veya üretimi (YANLIŞ) belirtmek için Boole
  • apns_tokens : Eklemek veya kaldırmak istediğiniz uygulama örneklerine ait APN jetonları dizisi. İstek başına en fazla 100 jeton.

Sonuçlar

Başarıyla çağrı yapılırsa HTTP durum 200 ve bir JSON sonuç gövdesi döndürülür. İstekte sağlanan her APN jetonu için sonuç listesi şunları içerir:

  • APN jetonu.
  • Durum. Tamam veya hatayı açıklayan bir hata mesajı.
  • Başarılı sonuçlar için FCM veya GCM'nin APNs jetonuyla eşlendiği kayıt jetonu.

Örnek POST isteği

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

Push abonelikleri için kayıt jetonlarını yönetin

Örnek kimliği hizmetinin web yöntemlerini kullanarak mevcut push aboneliklerini Firebase Cloud Messaging için içe aktarabilirsiniz. Bunları güncelleyebilir ve silebilirsiniz.

Bir push aboneliğini içe aktardığınızda bir kayıt jetonu alırsınız. Bu jeton, bildirimleri web uygulamalarınıza hedeflemek için konu mesajları ve cihaz grubu mesajları gibi FCM özelliklerini kullanmanıza olanak tanır.

Push aboneliklerini içe aktar

pushID'lerini ExampleID'nin web uç noktasını kullanarak içe aktarabilirsiniz:

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

İstek, OAuth 2.0 erişim jetonuna ayarlanmış bir yetkilendirme başlığı, uygulama sunucusu anahtarınıza ayarlanmış bir şifreleme anahtarı başlığı ve istek gövdesindeki PushSubscription nesnesi içermelidir.

Yanıt gövdesi, yükü şifrelemek zorunda kalmadan ilgili web uygulaması örneğine FCM veya GCM iletileri göndermek için kullanılmaya hazır bir kayıt jetonu içerir.

VAPID anahtar çiftinizi konsola yükleyin

Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişiminiz olmalıdır. Mevcut ortak ve özel anahtarınızı base64 URL güvenli kodlu forma aktarın:

  1. Firebase Konsolu Ayarlar bölmesinin Cloud Messaging sekmesini açın ve Web yapılandırması bölümüne gidin.
  2. Web Push sertifikaları sekmesinde, "mevcut bir anahtar çiftini içe aktar" bağlantı metnini bulup seçin.
  3. Bir anahtar çiftini içe aktarın iletişim kutusunda, ortak alanlara ve özel anahtarlara ilgili alanlara girip İçe aktar'ı tıklayın. Konsol, ortak anahtar dizesini ve eklenme tarihini gösterir.

OAuth2 jetonu alma: Erişim jetonlarını çıkarmak için kimlik bilgilerini kullanın

İstek için erişim jetonu oluşturmak istiyorsanız erişim jetonunu silmeniz ve HTTP isteğine eklemeniz gerekir.

düğüm.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'ye erişim yetkisi vermek için kapsamı kullanın: https://www.googleapis.com/auth/firebase.messaging.

Parametreler

  • Yetkilendirme: Bearer <access_token>. Bu parametreyi başlıkta ayarlayın.
  • Şifreleme Anahtarı: p256ecdsa=APPLICATION_PUBLIC_KEY. Bu parametreyi başlıkta ayarlayın.
  • İstek metni: PushSubscription.toJson(). Push aboneliğini, ayrıştırmadan HTTP gövdesine iletin. İçerik, PushSubscription W3C kodlamasına uygun.

Yanıt

Arama başarılı bir şekilde, HTTP durumu 200 Tamam'ı ve IID jetonunu içeren bir JSON sonuç gövdesi döndürür.

Örnek POST isteği

 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"
    }
 }

Örnek sonuç

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

Push aboneliklerini güncelle

Aşağıdaki uç noktayı kullanarak kayıt jetonunuzla ilişkili push aboneliğini güncelleyebilirsiniz:

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

Parametreler

  • Yetkilendirme: Bearer <access_token>. Bu parametreyi başlıkta ayarlayın.
  • Şifreleme Anahtarı: p256ecdsa=APPLICATION_PUBLIC_KEY. Bu parametreyi başlıkta ayarlayın.
  • İstek metni: PushSubscription.toJson(). Push aboneliğini, ayrıştırmadan HTTP gövdesine iletin. İçerik, PushSubscription W3C kodlamasına uygun.

Sonuçlar

Görüşme başarılı olduğunda HTTP durumu 200'ü ve kayıt jetonunu döndürür. Bu, istekte ilettiğiniz jeton veya yeni bir jeton olabilir.

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

Örnek POST isteği

 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"
    }
 }

Örnek sonuç

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

Push aboneliklerini sil

DELETE isteği, push aboneliği ayrıntılarını FCM veritabanından kaldırır. Push API protokolünü kullanarak web uygulamanızda mesaj almaya devam edebilirsiniz.

Bir push aboneliğini silmek için şu adrese bir DELETE isteği gönderin:

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

Örnek DELETE isteği

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

Örnek sonuç

 HTTP 200 OK {}

Hata yanıtları

Örnek kimliği 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ı inceleyin.
  • HTTP status 401 (Unauthorized) - Yetkilendirme başlığı 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ükleme ile yeniden deneyin.