Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
652 kez görüntülendi
genel kategorisinde tarafından

Kullandığım php fonksiyonu şu

function send_notification($tokens, $message, $deger) {
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
    $deger => $message,
    'priority' => 'high'
        //notification
);
if (is_array($tokens)) {
    $fields['registration_ids'] = $tokens;
} else {
    $fields['to'] = $tokens;
}
$headers = array(
    'Authorization:key =google key ',
    'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
    die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
  }

 function genelbildirim($baslik, $icerik, $token, $kontrol) {

$rndm = rand(1, 1000);
$message = array(
    "say" => $rndm,
    "title" => $baslik,
    "text" => $icerik,
    "sound" => 'default',
    "badge" => '1');
if ($kontrol == "ios") {
    $deger = "notification";
} else {
    $deger = "data";
}
$message_status = send_notification($token, $message, $deger);
//echo $message_status ."<------------------------------------->";
}

1 günde 1 kişiye 10 tane mesaj gönderiyorum ve bu mesajı ilk 5 dk içinde göremesi gerekiyor yani 10. dk da bile görse bir anlam ifade etmiyor o yüzden bildirimlere süre kısıtlaması getirebiliyormuyuz. Kişinin interneti kapalı o yüzden bildirim gitmiyor. 1 saat sonra açınca önceki bildirimler le birlikte 4-5 tane bildirim geliyor.
Yani bildirimlere 5 dakikalık ömür verebiliyormuyuz.

1 cevap

+1 oy
tarafından

Kendi apns sunucunu kullanıyor olsaydın,
mesajın geçersiz kalacağı tarihi time stamp formatında,
eski apns binary api'ın da binary'e çevirerek,
yeni http/2 provider api'ın da direkt "apns-expiration" header'ı set ederek kullanabilirdin.

Firebase deneyimim yok.
Muhtemelen yeni apns http/2 provider api'si ni kullanıyor.

Bu da demek oluyor ki yukarıda da belirttiğim gibi, firebase'de bir yerlerde "apns-expiration" header'ı set edebiliyor olman lazım.

Ya da firebase'de bu header key'i nin yerini tutan benzer bir değer var.
Firebase dökümantasyonuna bakmanı öneririm.

tarafından

tamamdır hocam bi kaç bişey bulduğum deneyeceğim olursa buradan yazarım başkalarıda faydalanır.

...