Firebase Cloud Messaging HTTP protokolü

Bu dokümanda, uygulama sunucunuzdan Firebase Cloud Messaging üzerinden istemci uygulamalarına mesaj iletmek için kullanılan HTTP söz dizimi referansı sağlanmaktadır.

Eski HTTP protokolü kullanıldığında uygulama sunucunuz tüm HTTP isteklerini şu uç noktaya yönlendirmelidir:

https://fcm.googleapis.com/fcm/send

Kullanılabilir parametreler ve seçenekler aşağıdaki geniş kategorilere ayrılır:

Aşağı akış mesajı söz dizimi

Bu bölümde, yayın mesajları gönderme ve Firebase Cloud Messaging'ten gelen HTTP yanıtlarını yorumlamayla ilgili söz dizimi verilmiştir.

Aşağı akış HTTP mesajları (JSON)

Aşağıdaki tabloda, HTTP JSON mesajlarının hedefleri, seçenekleri ve yükü listelenmiştir.

Tablo 1. Aşağı akış HTTP mesajları (JSON) için hedefler, seçenekler ve yük.

Parametre Kullanım Açıklama
Hedefler
to İsteğe bağlı, dize

Bu parametre, bir iletinin alıcısını belirtir.

Değer, bir cihazın kayıt jetonu, bir cihaz grubunun bildirim anahtarı veya tek bir konu olabilir (önüne /topics/ eklenir). Birden fazla konuya göndermek için condition parametresini kullanın.

registration_ids
İsteğe bağlı, dize dizisi

Bu parametre, birden fazla kayıt jetonuna gönderilen bir çoklu yayın mesajının alıcısını belirtir.

Değer, çoklu yayın mesajının gönderileceği kayıt jetonlarının dizisi olmalıdır. Dizi en az 1 ve en fazla 1.000 kayıt jetonu içermelidir. Tek bir cihaza mesaj göndermek için to parametresini kullanın.

Çoklu yayın iletilerine yalnızca HTTP JSON biçimi kullanılarak izin verilir.

condition İsteğe bağlı, dize

Bu parametre, mesaj hedefini belirleyen koşulların mantıksal ifadesini belirtir.

Desteklenen koşul: Konu, "konularda "konunuz"" şeklinde biçimlendirilir. Bu değer büyük/küçük harfe duyarlı değildir.

Desteklenen operatörler: &&, ||. Konu mesajı başına en fazla iki operatör desteklenir.

notification_key
Kullanımdan kaldırıldı
İsteğe bağlı, dize

Bu parametre için destek sonlandırılmıştır. Bunun yerine, mesaj alıcılarını belirtmek için to kullanın. Birden fazla cihaza mesaj gönderme hakkında daha fazla bilgi için platformunuzun dokümanlarına bakın.

Seçenekler
collapse_key İsteğe bağlı, dize

Bu parametre, yayın devam ettirildiğinde yalnızca son iletinin gönderilmesi için daraltılabilen bir ileti grubunu (ör. collapse_key: "Updates Available" ile) tanımlar. Bu, cihaz tekrar internete bağlandığında veya etkinleştiğinde aynı mesajların çok fazla gönderilmesini önlemek içindir.

Mesajların gönderilme sırasının garanti edilmediğini unutmayın.

Not: Herhangi bir zamanda en fazla 4 farklı daraltma anahtarına izin verilir. Bu, FCM'ün istemci uygulaması başına aynı anda 4 farklı mesaj saklayabileceği anlamına gelir. Bu sayıyı aşarsanız FCM'ün hangi 4 daraltma anahtarını saklayacağı garanti edilmez.

priority İsteğe bağlı, dize

İletinin önceliğini ayarlar. Geçerli değerler "normal" ve "yüksek"tir. Apple platformlarında bunlar APN'lerin 5 ve 10. önceliklerine karşılık gelir.

Varsayılan olarak bildirim mesajları yüksek öncelikli, veri mesajları ise normal öncelikli olarak gönderilir. Normal öncelik, istemci uygulamasının pil tüketimini optimize eder ve anında yayınlama gerekmediği sürece kullanılmalıdır. Normal öncelikli mesajlar, uygulama tarafından belirtilmeyen bir gecikmeyle alınabilir.

Yüksek öncelikli olarak gönderilen mesajlar hemen gönderilir ve uygulama bir bildirim gösterebilir.

content_available İsteğe bağlı, boole

Apple platformlarında, APNs yükünde content-available değerini temsil etmek için bu alanı kullanın. Bir bildirim veya mesaj gönderildiğinde ve bu ayar true olarak ayarlandığında, etkin olmayan bir istemci uygulaması uyanır ve mesaj FCM üzerinden değil, APN'ler üzerinden sessiz bildirim olarak gönderilir. APN'lerdeki sessiz bildirimlerin gönderilmesinin garanti edilmediğini ve kullanıcının düşük güç modunu etkinleştirmesi, uygulamadan zorla çıkması gibi faktörlere bağlı olabileceğini unutmayın. Android'de veri mesajları varsayılan olarak uygulamayı uyandırır. Chrome'da şu anda desteklenmiyor.

mutable_content İsteğe bağlı, JSON boole

Apple platformlarında, APNs yükünde mutable-content değerini temsil etmek için bu alanı kullanın. Bir bildirim gönderildiğinde ve bu ayar true olarak belirlendiğinde, bildirimin içeriği bildirim hizmeti uygulama uzantısı kullanılarak görüntülenmeden önce değiştirilebilir. Bu parametre Android ve web için yoksayılır.

time_to_live İsteğe bağlı, sayı

Bu parametre, cihaz çevrimdışıysa mesajın FCM depolama alanında ne kadar süre (saniye cinsinden) tutulacağını belirtir. Desteklenen maksimum geçerlilik süresi 4 haftadır ve varsayılan değer 4 haftadır. Daha fazla bilgi için Mesajın geçerlilik süresini ayarlama başlıklı makaleyi inceleyin.

restricted_package_
name
(yalnızca Android)
İsteğe bağlı, dize Bu parametre, mesajı almak için kayıt jetonlarının eşleşmesi gereken uygulamanın paket adını belirtir.
dry_run İsteğe bağlı, boole

Bu parametre true olarak ayarlandığında geliştiricilerin gerçekten mesaj göndermeden isteği test etmesine olanak tanır.

false, varsayılan değerdir.

Yük
data İsteğe bağlı, nesne

Bu parametre, mesajın yükü için özel anahtar/değer çiftlerini belirtir.

Örneğin, data:{"score":"3x1"}:

Apple platformlarında, ileti APN'ler üzerinden gönderiliyorsa özel veri alanlarını temsil eder. FCM üzerinden gönderilirse AppDelegate application:didReceiveRemoteNotification:'te anahtar/değer sözlüğü olarak temsil edilir.

Android'de bu, 3x1 dize değerine sahip score adlı bir intent ekstrasıyla sonuçlanır.

Anahtar, ayrılmış bir kelime ("from", "message_type" veya "google" ya da "gcm" ile başlayan herhangi bir kelime) olmamalıdır. Bu tabloda tanımlanan kelimelerden hiçbirini kullanmayın (collapse_key gibi).

Dize türünde değerler önerilir. Nesnelerdeki veya dize olmayan diğer veri türlerindeki (ör. tam sayılar veya boole değerleri) değerleri dizeye dönüştürmeniz gerekir.

notification İsteğe bağlı, nesne Bu parametre, bildirim yükü için önceden tanımlanmış, kullanıcı tarafından görülebilen anahtar/değer çiftlerini belirtir. Ayrıntılar için bildirim yükü desteğine bakın. Bildirim mesajı ve veri mesajı seçenekleri hakkında daha fazla bilgi için Mesaj türleri başlıklı makaleyi inceleyin. Bir bildirim yükü sağlanırsa veya Apple cihaza gönderilen bir mesaj için content_available seçeneği true olarak ayarlanırsa mesaj APN'ler üzerinden gönderilir. Aksi takdirde FCM üzerinden gönderilir.

Bildirim yükü desteği

Aşağıdaki tablolarda, iOS ve Android için bildirim mesajları oluşturmak üzere kullanılabilen önceden tanımlanmış anahtarlar listelenmiştir.

Tablo 2a. iOS: bildirim mesajları için anahtarlar

Parametre Kullanım Açıklama
title İsteğe bağlı, dize

Bildirimin başlığı.

Bu alan telefonlarda ve tabletlerde görünmez.

body İsteğe bağlı, dize

Bildirimin gövde metni.

sound İsteğe bağlı, dize

Cihaz bildirimi aldığında çalınacak ses.

İstemci uygulamasının ana paketindeki veya uygulamanın veri kapsayıcısının Library/Sounds klasöründeki ses dosyalarını belirten dize. Daha fazla bilgi için iOS Developer Library'e bakın.

badge İsteğe bağlı, dize

Ana ekran uygulama simgesinde bulunan rozetin değeri.

Belirtilmemişse rozet değiştirilmez.

0 olarak ayarlanırsa rozet kaldırılır.

click_action İsteğe bağlı, dize

Kullanıcının bildirimi tıklamasıyla ilişkili işlem.

APN'ler yükünde category değerine karşılık gelir.

subtitle İsteğe bağlı, dize

Bildirimin alt başlığı.

body_loc_key İsteğe bağlı, dize

Ana metni kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için uygulamanın dize kaynaklarındaki ana metin dizesinin anahtarı.

APN'ler yükünde loc-key değerine karşılık gelir.

Daha fazla bilgi için Yük Anahtarı Referansı ve Uzak Bildirimlerinizin İçeriğini Yerelleştirme başlıklı makaleleri inceleyin.

body_loc_args İsteğe bağlı, JSON dizisi olarak dize

Ana metni kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için body_loc_key içindeki biçim belirteçleri yerine kullanılacak değişken dize değerleri.

APN'ler yükünde loc-args değerine karşılık gelir.

Daha fazla bilgi için Yük Anahtarı Referansı ve Uzak Bildirimlerinizin İçeriğini Yerelleştirme başlıklı makaleleri inceleyin.

title_loc_key İsteğe bağlı, dize

Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için uygulamanın dize kaynaklarındaki başlık dizesinin anahtarı.

APN'ler yükünde title-loc-key değerine karşılık gelir.

Daha fazla bilgi için Yük Anahtarı Referansı ve Uzak Bildirimlerinizin İçeriğini Yerelleştirme başlıklı makaleleri inceleyin.

title_loc_args İsteğe bağlı, JSON dizisi olarak dize

Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için title_loc_key içindeki biçim belirteçleri yerine kullanılacak değişken dize değerleri.

APN'ler yükünde title-loc-args değerine karşılık gelir.

Daha fazla bilgi için Yük Anahtarı Referansı ve Uzak Bildirimlerinizin İçeriğini Yerelleştirme başlıklı makaleleri inceleyin.

Tablo 2b. Android: Bildirim mesajları için anahtarlar

Parametre Kullanım Açıklama
title İsteğe bağlı, dize

Bildirimin başlığı.

body İsteğe bağlı, dize

Bildirimin gövde metni.

android_channel_id İsteğe bağlı, dize

Bildirimin kanal kimliği (Android O'da yeni).

Uygulama, bu kanal kimliğine sahip bir bildirim alınmadan önce bu kanal kimliğiyle bir kanal oluşturmalıdır.

İstekte bu kanal kimliğini göndermezseniz veya sağlanan kanal kimliği henüz uygulama tarafından oluşturulmamışsa FCM, uygulama manifestinde belirtilen kanal kimliğini kullanır.

icon İsteğe bağlı, dize

Bildirimin simgesi.

myicon çizilebilir kaynağı için bildirim simgesini myicon olarak ayarlar. İstekte bu anahtarı göndermezseniz FCM, uygulama manifest dosyanızda belirtilen başlatıcı simgesini gösterir.

sound İsteğe bağlı, dize

Cihaz bildirimi aldığında çalınacak ses.

"default" veya uygulamaya paketlenmiş bir ses kaynağının dosya adını destekler. Ses dosyaları /res/raw/ içinde olmalıdır.

tag İsteğe bağlı, dize

Bildirim çekmecesindeki mevcut bildirimleri değiştirmek için kullanılan tanımlayıcı.

Belirtilmezse her istek yeni bir bildirim oluşturur.

Belirtilirse ve aynı etikete sahip bir bildirim zaten gösteriliyorsa yeni bildirim, bildirim çekmecesinde mevcut bildirimin yerini alır.

color İsteğe bağlı, dize

Bildirimin simge rengi. #rrggbb biçiminde ifade edilir.

click_action İsteğe bağlı, dize

Kullanıcının bildirimi tıklamasıyla ilişkili işlem.

Belirtiliyse kullanıcı bildirimi tıkladığında eşleşen bir intent filtresine sahip bir etkinlik başlatılır.

body_loc_key İsteğe bağlı, dize

Ana metni kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için uygulamanın dize kaynaklarındaki ana metin dizesinin anahtarı.

Daha fazla bilgi için Dize Kaynakları başlıklı makaleyi inceleyin.

body_loc_args İsteğe bağlı, JSON dizisi olarak dize

Ana metni kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için body_loc_key içindeki biçim belirteçleri yerine kullanılacak değişken dize değerleri.

Daha fazla bilgi için Biçimlendirme ve Stil başlıklı makaleyi inceleyin.

title_loc_key İsteğe bağlı, dize

Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için uygulamanın dize kaynaklarındaki başlık dizesinin anahtarı.

Daha fazla bilgi için Dize Kaynakları başlıklı makaleyi inceleyin.

title_loc_args İsteğe bağlı, JSON dizisi olarak dize

Başlık metnini kullanıcının mevcut yerelleştirmesine göre yerelleştirmek için title_loc_key içindeki biçim belirteçleri yerine kullanılacak değişken dize değerleri.

Daha fazla bilgi için Biçimlendirme ve Stil başlıklı makaleyi inceleyin.

Tablo 2c. Web (JavaScript): Bildirim mesajları için anahtarlar

Parametre Kullanım Açıklama
title İsteğe bağlı, dize

Bildirimin başlığı.

body İsteğe bağlı, dize

Bildirimin gövde metni.

icon İsteğe bağlı, dize

Bildirim simgesinde kullanılacak URL.

click_action İsteğe bağlı, dize

Kullanıcının bildirimi tıklamasıyla ilişkili işlem.

Tüm URL değerleri için HTTPS gereklidir.

Aşağı akış HTTP mesajları (Düz Metin)

Aşağıdaki tabloda, aşağı akış düz metin HTTP mesajlarındaki hedefler, seçenekler ve yükün söz dizimi listelenmiştir.

Tablo 3. Aşağı akış düz metin HTTP mesajları için hedefler, seçenekler ve yük.

Parametre Kullanım Açıklama
Hedefler
registration_id Zorunlu, dize

Bu parametre, mesajı alan istemci uygulamalarını (kayıt jetonlarını) belirtir.

Çoklu yayın mesajlarına (birden fazla kayıt jetonuna gönderme) yalnızca HTTP JSON biçimi kullanılarak izin verilir.

Seçenekler
collapse_key İsteğe bağlı, dize Ayrıntılar için tablo 1'e bakın.
time_to_live İsteğe bağlı, sayı Ayrıntılar için tablo 1'e bakın.
restricted_package_name İsteğe bağlı, dize Ayrıntılar için tablo 1'e bakın.
dry_run İsteğe bağlı, boole Ayrıntılar için tablo 1'e bakın.
Yük
data.<key> İsteğe bağlı, dize

Bu parametre, mesajın yükü için anahtar/değer çiftlerini belirtir. Anahtar/değer parametrelerinin sayısı için bir sınırlama yoktur ancak toplam ileti boyutu sınırı 4096 bayttır.

Örneğin, Android'de "data.score"."3x1", 3x1 dize değerine sahip score adlı bir intent ekstrası oluşturur.

Anahtar, ayrılmış bir kelime ("from", "message_type" veya "google" ya da "gcm" ile başlayan herhangi bir kelime) olmamalıdır. Bu tabloda tanımlanan kelimelerden hiçbirini (collapse_key gibi) kullanmayın.

Aşağı akış mesaj yanıtını yorumlama

Uygulama sunucusu, FCM adresinden gönderilen ileti yanıtını yorumlamak için hem ileti yanıtı üst bilgisini hem de gövdesini değerlendirmelidir. Olası yanıtlar aşağıdaki tabloda açıklanmıştır.

Tablo 4. Aşağı akış HTTP mesajı yanıt başlığı.

Yanıt Açıklama
200 İleti başarıyla işlendi. Yanıt metni, mesaj durumuyla ilgili daha fazla bilgi içerir ancak biçimi, isteğin JSON veya düz metin olup olmadığına bağlıdır. Daha fazla bilgi için tablo 5'e bakın.
400 Yalnızca JSON istekleri için geçerlidir. İsteğin JSON olarak ayrıştırılamadığını veya geçersiz alanlar içerdiğini (ör. sayı beklenen bir yere dize gönderme) gösterir. Başarısızlıkla ilgili kesin neden yanıtta açıklanır ve isteğin yeniden denenebilmesi için sorunun giderilmesi gerekir.
401 Gönderen hesabının kimliği doğrulanırken hata oluştu.
5xx 500-599 aralığındaki hatalar (ör. 500 veya 503), isteği işlemeye çalışırken FCM arka ucunda dahili bir hata olduğunu veya sunucunun geçici olarak kullanılamadığını (ör. zaman aşımı nedeniyle) gösterir. Gönderen, yanıta dahil edilen tüm Retry-After başlıklarını dikkate alarak daha sonra yeniden denemelidir. Uygulama sunucuları, üstel geri yükleme uygulamalıdır.

Aşağıdaki tabloda, yayın mesajı yanıtı gövdesinde (JSON) bulunan alanlar listelenmiştir.

Tablo 5. Aşağı akış HTTP mesajı yanıt gövdesi (JSON).

Parametre Kullanım Açıklama
multicast_id Zorunlu, sayı Çoklu yayın mesajını tanımlayan benzersiz kimlik (sayı).
success Zorunlu, sayı Hatasız şekilde işlenen mesajların sayısı.
failure Zorunlu, sayı İşlenememiş mesajların sayısı.
results Zorunlu, nesne dizisi İşlenen iletilerin durumunu temsil eden nesne dizisi. Nesneler, istekle aynı sırada listelenir (ör. istekteki her kayıt kimliği için sonucu, yanıtta aynı dizinde listelenir).
  • message_id: Başarıyla işlenen her mesaj için benzersiz bir kimliği belirten dize.
  • error: Alıcı için ileti işlenirken oluşan hatayı belirten dize. Olası değerleri tablo 9'da bulabilirsiniz.

Tablo 6. Konu mesajı HTTP yanıtı gövdesi (JSON).

Parametre Kullanım Açıklama
message_id İsteğe bağlı, sayı FCM isteği başarıyla aldığında ve abone olan tüm cihazlara iletmeye çalıştığında konu mesajı kimliği.
error İsteğe bağlı, dize Mesaj işlenirken oluşan hata. Olası değerleri tablo 9'da bulabilirsiniz.

Tablo 7. Aşağı akış HTTP mesajı yanıt gövdesi için başarı yanıtı (düz metin).

Parametre Kullanım Açıklama
id Zorunlu, dize Bu parametre, başarıyla işlenen benzersiz ileti kimliğini (FCM) belirtir.
registration_id İsteğe bağlı, dize Bu parametre, mesajın işlendiği ve gönderildiği istemci uygulamasının kayıt jetonunu belirtir.

Tablo 8. Aşağı akış HTTP mesajı yanıtı gövdesi için hata yanıtı (Düz Metin).

Parametre Kullanım Açıklama
Error Zorunlu, dize Bu parametre, alıcı için ileti işlenirken hata değerini belirtir. Ayrıntılar için tablo 9'a bakın.

Aşağı akış mesajı hata yanıt kodları

Aşağıdaki tabloda, yayın mesajları için hata yanıt kodları listelenmiştir.

Tablo 9. Aşağı akış mesajı hata yanıtı kodları.

Hata HTTP Kodu Önerilen işlem
Kayıt jetonu eksik 200 + error:MissingRegistration İsteğin bir kayıt jetonu (düz metin mesajındaki registration_id alanında veya JSON'daki to ya da registration_ids alanında) içerdiğini kontrol edin.
Geçersiz Kayıt Jetonu 200 + error:InvalidRegistration Sunucuya ilettiğiniz kayıt jetonunun biçimini kontrol edin. Bu jetonun, istemci uygulamasının Firebase Notifications'a kaydolurken aldığı kayıt jetonuyla eşleştiğinden emin olun. Metni kısaltmayın veya ek karakter eklemeyin.
Kayıtlı Olmayan Cihaz 200 + error:NotRegistered Mevcut bir kayıt jetonu, aşağıdakiler de dahil olmak üzere çeşitli senaryolarda geçerliliğini yitirebilir:
  • İstemci uygulaması FCM ile kaydını iptal ederse.
  • İstemci uygulamasının otomatik olarak kaydının silinmesi (kullanıcı uygulamayı kaldırırsa bu durumla karşılaşılabilir). Örneğin, iOS'te APNs Geri Bildirim Hizmeti APNs jetonunu geçersiz olarak bildirmişse.
  • Kayıt jetonunun süresi dolarsa (ör. Google, kayıt jetonlarını yenilemeye karar verebilir veya iOS cihazlarda APNs jetonunun süresi dolarsa).
  • İstemci uygulaması güncellenmişse ancak yeni sürüm ileti alacak şekilde yapılandırılmamışsa.
Tüm bu durumlarda, bu kayıt jetonunu uygulama sunucusundan kaldırın ve mesaj göndermek için kullanmayı bırakın.
Geçersiz Paket Adı 200 + error:InvalidPackageName İletinin, paket adı istekte iletilen değerle eşleşen bir kayıt jetonuna gönderildiğinden emin olun.
Kimlik Doğrulama Hatası 401 Mesaj göndermek için kullanılan gönderen hesabının kimliği doğrulanamadı. Olası nedenler:
  • HTTP isteğinde yetkilendirme üstbilgisi eksik veya geçersiz söz dizimi içeriyor.
  • Belirtilen sunucu anahtarının ait olduğu Firebase projesi yanlış.
  • Yalnızca eski sunucu anahtarları: İstek, sunucu anahtarı IP'lerinde beyaz listeye eklenmemiş bir sunucudan geldi.
Kimlik doğrulama üstbilgisinin içine gönderdiğiniz jetonun, projenizle ilişkili doğru sunucu anahtarı olduğundan emin olun. Ayrıntılar için Sunucu anahtarının geçerliliğini kontrol etme başlıklı makaleyi inceleyin. Eski bir sunucu anahtarı kullanıyorsanız IP kısıtlaması olmayan yeni bir anahtara geçmeniz önerilir. Eski sunucu anahtarlarını taşıma başlıklı makaleyi inceleyin.
Eşleşmeyen Gönderen 200 + error:MismatchSenderId Kayıt jetonu belirli bir gönderen grubuna bağlıdır. Bir istemci uygulaması FCM için kaydolurken hangi gönderenlerin ileti göndermesine izin verildiğini belirtmelidir. İstemci uygulamasına mesaj gönderirken bu gönderen kimliklerinden birini kullanmanız gerekir. Farklı bir gönderene geçerseniz mevcut kayıt jetonları çalışmaz.
Geçersiz JSON 400 JSON mesajının doğru şekilde biçimlendirildiğinden ve geçerli alanlar içerdiğinden emin olun (örneğin, doğru veri türünün iletildiğinden emin olun).
Geçersiz Parametreler 400 + error:InvalidParameters Sağlanan parametrelerin doğru ada ve türe sahip olup olmadığını kontrol edin.
Mesaj çok büyük 200 + error:MessageTooBig Bir iletiye dahil edilen yük verilerinin toplam boyutunun FCM sınırlarını aşmadığından emin olun: Çoğu ileti için 4096 bayt veya konulara gönderilen iletiler için 2048 bayt. Buna hem anahtarlar hem de değerler dahildir.
Geçersiz Veri Anahtarı 200 ve üzeri hata:
InvalidDataKey
Yük verisinin, FCM tarafından dahili olarak kullanılan bir anahtar (from veya gcm gibi veya google ön ekiyle başlayan herhangi bir değer) içermediğinden emin olun. Bazı kelimelerin (collapse_key gibi) FCM tarafından da kullanıldığını ancak yükte izin verildiğini unutmayın. Bu durumda yük değeri, FCM değeri tarafından geçersiz kılınır.
Geçersiz Geçerlilik Süresi 200 + error:InvalidTtl time_to_live içinde kullanılan değerin, 0 ile 2.419.200 (4 hafta) saniye arasında bir süreyi temsil eden bir tam sayı olduğundan emin olun.
Zaman aşımı 5xx veya 200+ hatası:Kullanılamıyor

Sunucu, isteği zamanında işleyemedi. Aynı isteği tekrar deneyin ancak şunu yapmanız gerekir:

  • FCM Bağlantı Sunucusu'ndan gelen yanıtta Retry-After üst bilgisi varsa bu üstbilgiyi dikkate alın.
  • Yeniden deneme mekanizmanıza eksponansiyel geri yükleme uygulayın. (ör.ilk yeniden denemeden önce bir saniye beklediyseniz bir sonrakinden önce en az iki saniye, ardından 4 saniye bekleyin vb.). Birden fazla mesaj gönderiyorsanız tüm mesajlar için aynı anda yeni bir istek göndermemek amacıyla her bir mesajı bağımsız olarak ek bir rastgele süreyle erteleyin.

Sorunlara neden olan gönderenler kara listeye alınabilir.

Dahili Sunucu Hatası 500 veya 200 + error:InternalServerError Sunucu, isteği işlemeye çalışırken bir hatayla karşılaştı. "Tüme zaman aşımı" bölümünde listelenen şartları uygulayarak aynı isteği tekrar deneyebilirsiniz (yukarıdaki satıra bakın). Hata devam ederse lütfen Firebase Destek Ekibi ile iletişime geçin.
Cihaz Mesaj Sıklığı Aşıldı 200 ve üzeri hata:
DeviceMessageRate
Exceeded

Belirli bir cihaza gönderilen mesajların oranı çok yüksek. Bir Apple uygulaması, APNs sınırlarını aşan bir hızda ileti gönderirse bu hata mesajını alabilir

Bu cihaza gönderilen mesaj sayısını azaltın ve göndermeyi yeniden denemek için eksponansiyel geri yüklemeyi kullanın.

Topics Mesaj Sıklığı Aşıldı 200 ve üzeri hata:
TopicsMessageRate
Exceeded
Belirli bir konuya abone olan kullanıcılara gönderilen mesajların oranı çok yüksek. Bu konu için gönderilen mesaj sayısını azaltın ve göndermeyi yeniden denemek için eksponansiyel geri yüklemeyi kullanın.
Geçersiz APNs kimlik bilgileri 200 ve üzeri hata:
InvalidApnsCredential
Gerekli APN kimlik doğrulama anahtarı yüklenmediği veya süresi dolduğu için Apple cihazı hedefleyen bir mesaj gönderilemedi. Geliştirme ve üretim kimlik bilgilerinizin geçerliliğini kontrol edin.

Cihaz grubu yönetimi

Aşağıdaki tabloda, cihaz grupları oluşturma ve üye ekleme ya da kaldırmayla ilgili anahtarlar listelenmiştir. Daha fazla bilgi için platformunuza yönelik kılavuzu inceleyin: iOS+ veya Android.

Tablo 10. Cihaz grubu yönetim anahtarları.

Parametre Kullanım Açıklama
operation Zorunlu, dize Çalıştırılacak işlem.Geçerli değerler create, add ve remove'dir.
notification_key_name Zorunlu, dize Oluşturulacak veya değiştirilecek cihaz grubunun kullanıcı tanımlı adı.
notification_key Zorunlu (create işlemi, dize Cihaz grubunun benzersiz tanımlayıcısı. Bu değer, başarılı bir create işleminin yanıtında döndürülür ve cihaz grubunda yapılan sonraki tüm işlemler için gereklidir.
registration_ids Zorunlu, dize dizisi Eklenecek veya kaldırılacak cihaz jetonları. Bir cihaz grubundaki mevcut tüm kayıt jetonlarını kaldırırsanız FCM, cihaz grubunu siler.