GCM android PHP android推送通知

 弓X箭_281 发布于 2023-01-20 12:28

我的问题与使用PHP curl的android推送通知有关.问题是我向我的Android设备发送一个推送通知,但问题是我的一些设备不止一次获得该通知,有时20次,而有些只获得一次,因此排除了应用程序的错误.我真的不知道问题是什么.感谢您的预期响应/解决方案.请参阅下面的推送代码

function googlePush($DevID, $Message , $id)
{
// Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
//  static $a=1;
    $DeviceID = array($DevID);
$Message = array("MSG" => $Message, "MSGCNT" => $Message, "message" => $Message, "id" => $id);

$fields = array(
    'registration_ids' => $DeviceID,
    'data' => $Message,
);

$headers = array(
    'Authorization: key=' . 'xxxxxxxxxxxxxxxxxxxxxxxx',
    'Content-Type: application/json'
);
// Open connection
$ch = curl_init();

// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    //additions
    curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);

// Disabling SSL Certificate support temporarly
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

// Execute post
$result = curl_exec($ch);

if ($result === FALSE) {
    die('Curl failed: ' . curl_error($ch));
}

    unset($DeviceID);

// Close connection
    var_dump($result);
curl_close($ch);

}

结果的var转储如下所示,我还注意到一些registration_id具有相同的值

    **********string** '{"multicast_id":8672106836162339205,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxxxxxxxxxxxx","message_id":"0:1393854839483681%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":8498502225166328169,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxxxxxxxxx","message_id":"0:1393854840250166%eee44707f9fd7ecd"}]}' (length=326)


    **string** '{"multicast_id":7302855159132255364,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854840859779%eee44707f9fd7ecd"}]}' (length=143)


    **string** '{"multicast_id":6882780021901998797,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxxxx","message_id":"0:1393854841511331%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":8381589117174890484,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxx","message_id":"0:1393854842128271%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":6847925128400811155,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854842760280%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":7903592410326185172,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxxxxx","message_id":"0:1393854843468783%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":5431281358827461125,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxx","message_id":"0:1393854844108856%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":6242320368959177697,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854844708476%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":6289135300645883957,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854845368752%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":8065775041092982406,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854846007304%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":5796390289718372097,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854846610566%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":8805706816500517785,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxx","message_id":"0:1393854847269971%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":7983336428405472483,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxx","message_id":"0:1393854847888947%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":6228808030640727875,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxxx","message_id":"0:1393854848530967%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":5551712224296927538,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854849250561%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":7677859595454701121,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854849828922%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":4797333817540136724,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxx","message_id":"0:1393854850529846%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":6508223386232436892,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854851209242%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":4773533719835572015,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxx","message_id":"0:1393854851828127%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":5409507279769055411,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxx","message_id":"0:1393854852488533%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":5694677433969852727,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854853131499%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":6750411477469821632,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxx","message_id":"0:1393854853749992%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":4725663028894725199,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854854358521%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":6714161557242774959,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854854967476%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":7546061721250672776,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854855589308%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":4889453422658966187,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854856248256%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":6177254519903698994,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854856849541%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":5057079171295055438,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854857489730%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":9157325687626306713,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854858127816%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":7796618069469674709,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854858748602%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":8051599406708181530,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxxxxx","message_id":"0:1393854859437798%eee44707f9fd7ecd"}]}' (length=326)

    **string** '{"multicast_id":8240272655734048325,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854860088449%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":7266159540819274423,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854860707600%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":4888209323517106512,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854861327433%eee44707f9fd7ecd"}]}' (length=143)

    **string** 
'{"multicast_id":8322636158677230100,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854861950247%eee44707f9fd7ecd"}]}' (length=143)

    **string** '{"multicast_id":5078649048024494474,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1393854862548844%eee44707f9fd7ecd"}]}' (length=143)********

Eran.. 5

您应该处理返回的规范注册ID.

例如,请考虑以下响应(并且您的问题包含19个此类响应"canonical_ids":1):

string '{"multicast_id":7546061721250672776,"success":1,"failure":0,"canonical_ids":1,"results":[{"registration_id":"xxxxx","message_id":"0:1393854855589308%eee44707f9fd7ecd"}]}' (length=326)

这意味着您使用旧的注册ID向已具有较新注册ID的设备发送通知.如果您还使用新注册ID(registration_id响应参数中指定的注册ID)发送了通知,则可以解释设备获取该通知两次.

每当您获得具有规范注册ID的响应时,您应该在数据库中替换旧注册ID(您用于发送通知的ID)与响应中指定的规范注册ID(或者只是删除旧的注册ID,如果您已经在您的数据库中拥有规范的注册ID).

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有