如何使FCM可靠?

时间:2019-07-16 12:50:10

标签: php android push-notification

我正在使用以下代码在Android设备上发送推送通知。问题是这些通知不会在特别是Android 8或更低版本的多个设备上发出。例如在Redmi 6A移动版中,我向我的应用发送了通知。显示6条通知后,它停止了。然后我卸载了该应用程序,然后再次安装并发送了通知,但锁定屏幕上仍然没有通知。同样,在lenovo android手机中,甚至没有一个通知出现。但是,如果我直接通过google fcm页面发送(进行测试),则它会在所有设备中使用。您认为下面的代码有问题吗?

<?php
// July 2019

$firebase_register_id=isset($_POST['firebase_register_id']) ? $_POST['firebase_register_id'] : '';
$message=isset($_POST['message']) ? $_POST['message'] : '';
$ttype="X";
$id=1;

try{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array (
        'to' => $firebase_register_id,
        'notification' => array (
                "body" => $message,
                "title" => "App Title"
        ),
        'data' => array (
               "type"=>$ttype,
                "ID"=>$id           
        )
);
$fields = json_encode ( $fields );

$headers = array (
        'Authorization: key=' . "XXXXXX",
        'Content-Type: application/json'
);

$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_POST, true );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $fields );

$result = curl_exec ( $ch );
echo $result;
curl_close ( $ch );

}catch(Exception $e) {
  echo 'Message: ' .$e->getMessage();
}

?>

0 个答案:

没有答案