【发布时间】:2015-08-14 06:21:19
【问题描述】:
我通过 php 代码从服务器端推送消息,我总共有 6 个 android 设备,当我通过我的 php 脚本推送消息时,我得到以下响应,我在 4 个设备中收到通知,但在 2 个设备中没有收到任何通知,我看到“成功”:6,结果 JSON 响应中还打印了这两个 android 设备 ID,以及“canonical_ids”:2 PHP 脚本:
<?php
$registatoin_ids = array("XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX","XXXXXXX")
define( 'API_ACCESS_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' );
$message = array("notification_status"=>1,"message"=>"Hello Android"); // Response for android
$fields = array
(
'registration_ids' => $registatoin_ids,
'data' => array( "price" => $message )
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/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( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
echo $result;
?>
回复:
{
"multicast_id": 5091283388403222000,
"success": 6,
"failure": 0,
"canonical_ids": 2,
"results": [
{
"registration_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"message_id": "0:1439532747953065%12153c37f9fd7ecd"
},
{
"registration_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"message_id": "0:1439532747954730%12153c37f9fd7ecd"
},
{
"message_id": "0:1439532747954278%12153c37f9fd7ecd"
},
{
"message_id": "0:1439532747963956%12153c37f9fd7ecd"
},
{
"message_id": "0:1439532747953665%12153c37f9fd7ecd"
},
{
"message_id": "0:1439532747954836%12153c37f9fd7ecd"
}
]
}
【问题讨论】:
-
首先,对问题进行更多描述,并进行相关标记。来到这个问题,它的设备的问题,假设你在所有运行相同的代码。因为谷歌没有错误响应。
-
请考虑我们完全不知道您所说的“设备”或“服务器”或“推送”系统是什么类型的。在任何人能够对此发表任何看法之前,这需要进一步澄清。
-
嗨,Deceze,请您重播,请您查看我的代码。并希望您能再次给我回复谢谢。
标签: php google-cloud-messaging