如果使用Php脚本发送或不发送消息,我如何获得响应,然后我想使用响应来确定设备是否在线,
这是我发送消息的Php脚本:
function send_push_notification($registration_ids, $message) {
$regId=$registration_ids;
$msg=$message;
$message = array("message" => $msg);
$regArray[]=$registration_ids;
$url = 'https://android.googleapis.com/gcm/send';
$fields = array('registration_ids' => $regArray, 'data' => $message,);
$headers = array( 'Authorization: key=API_KEY','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_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result=curl_exec($ch);
echo $result;
if($result==FALSE)
{
die('Curl Failed');
}
curl_close($ch);
}
由于
答案 0 :(得分:0)
你没有得到应用程序的回复;您只能从GCM系统本身获得响应。当CURL调用完成时,$result
包含一个JSON编码的对象;其id
属性在成功时包含消息ID。
答案 1 :(得分:0)
服务器从GCM服务器获取的响应不会告诉您消息是否已发送。它仅告知您GCM服务器是接受该消息还是拒绝该消息。如果它被接受,GCM服务器将尝试提供它,但不能保证它会成功。如果它被拒绝,您会收到一条错误消息(例如InvalidRegistration
,MissingRegistration
等...)。
如果您想要确认递送,您必须在Android应用中拥有一个代码,在收到消息后会拨打您的服务器,以确认收到了消息。