PushizoDocs
Kanallar

Android Push (FCM)

Firebase Cloud Messaging HTTP v1 kanalı — servis hesabı, data-only mesaj modeli, Android içerik alanları, bildirim kanalları, teslimat geri bildirimi ve sorun giderme.

Android push, FCM HTTP v1 API'si ve Firebase servis hesabı ile gönderilir. Pushizo her zaman data-only mesaj gönderir; bildirimi cihazda Android SDK kurar. Böylece uygulama arka plandayken de tıklama/teslimat geri bildirimi, zengin içerik ve aksiyon düğmeleri tutarlıdır. Huawei cihazlar için HMS kanalı. Kurulum: Android hızlı başlangıç.

Kimlik bilgisi

Firebase → Project settings → Service accounts → Generate new private key ile indirilen JSON. Dashboard → Kanallar → Android Push → dosyayı yükleyin → Doğrula. API: PUT /v1/apps/{app_id}/channels/android_push { "provider": "fcm", "config": { "service_account": { …json… } } } (multipart dosya da kabul edilir). Doğrulama FCM'den OAuth belirteci alıp proje erişimini sınar; token_uri yalnızca Google alan adlarında kabul edilir (SSRF koruması).

İçerik alanları

AlanDavranış
headings, contents, urlBaşlık, gövde ve tıklama adresi
android_channel_idBildirim kanalı (Android 8+). Yoksa SDK varsayılan kanalı (defaultChannelName) kullanır
android_groupGruplama anahtarı
android_soundres/raw ses dosyası adı
small_icon, large_iconDurum çubuğu ikonu (drawable adı) ve büyük ikon (URL ya da drawable)
android_accent_color#RRGGBB vurgu rengi
android_visibility1 public, 0 private, -1 secret (kilit ekranı)
big_pictureBüyük resim stili
buttons[{ id, text, icon? }] aksiyon düğmeleri
collapse_idFCM collapse_key (aynı anahtar önceki bildirimi değiştirir)
priority (5/10)FCM normal / high önceliği; 10 Doze modunda uyandırır
ttlFCM ttl (sn, en fazla 28 gün)
dataÖzel yük; SDK notification.additionalData ile verir

Bildirim kanalları dashboard'da Kanallar → Android Push → Bildirim kanalları ile tanımlanır (ad, önem, ses, titreşim); SDK ilk açılışta cihazda oluşturur (Android SDK → bildirim kanalları).

Teslimat ve geri bildirim

  • FCM yanıtı: 200 → sent; UNREGISTERED / INVALID_ARGUMENT (token) → abonelik invalid + subscription.invalidated; QUOTA_EXCEEDED/UNAVAILABLE/5xx → yeniden deneme planı.
  • SDK bildirimi gösterince received, tıklayınca opened bildirir; Android 12+ "trampoline" kısıtı için SDK açık PendingIntent kullanır.
  • Token değişimi (onNewToken) SDK tarafından otomatik olarak aboneliğe yazılır.

Sorun giderme

BelirtiKontrol
Doğrulama 403Servis hesabı projesi, app'in google-services.json projesiyle aynı mı; Firebase Cloud Messaging API (V1) etkin mi?
Bildirim gelmiyor (Android 13+)POST_NOTIFICATIONS izni verildi mi (Pushizo.Notifications.permission)
Bildirim gelmiyor (bazı cihazlar)Üretici pil optimizasyonu (Xiaomi, Huawei EMUI); priority: 10 deneyin; Huawei'de HMS
İkon beyaz karesmall_icon monokrom, şeffaf arka planlı olmalı
Tıklama uygulamayı açıyor ama url yokaddClickListener ile event.url okuyun; Activity launchMode

Bu sayfada