我的问题与使用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).