Android:google FCM禁用几小时后发送通知

时间:2018-02-02 19:44:14

标签: php android firebase-cloud-messaging

我使用谷歌FCM发送通知

如果用户未连接到互联网并且我发送通知,则在用户连接到互联网后,通知会收到该用户设备

如果同一时刻连接到互联网而不是在

之后发送,我只想通知用户

我的代码:

function sendNotification($to,$title,$text,$data=""){
    $fcmMsg = array('body'=>$title,
                    'title'=>$text,
                    'sound'=>"default",
                    'click_action'=>'YOUR_ACTION',
                    'largeIcon'=>'ic_launcher',
                    'smallIcon'=>'ic_launcher');

    $fcmFields = array('to'=>$to,
                       'data'=>$data,
                       'priority'=>'high',
                       'notification'=>$fcmMsg);

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

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://fcm.googleapis.com/fcm/send');
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fcmFields));
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

1 个答案:

答案 0 :(得分:1)

默认情况下,如果设备重新获得连接,FCM会存储该消息并尝试重新发送。因此,您应该在有效负载中添加time_to_live参数,其值为0.它将告诉FCM服务器应立即发送消息。如果设备未连接到FCM服务器或脱机,则FCM服务器将丢弃该消息,并且不再发送该消息。