php – GCM返回错误:字段数据必须是json数组

当我使用GCM时,我得到一个错误返回:字段“data”必须是JSON数组.任何人都知道如何解决它?谢谢.
我的代码的第一部分,部分代码被省略:

<?php

$gcm_regid = array();
$gcm_data = array();  
while ($row = mysql_fetch_array($result)) {
array_push($gcm_regid, $single_gcm_regid );
array_push($gcm_data , $notificationMessage);
}

?>

这是第二部分:

<?php

$url    = 'https://android.googleapis.com/gcm/send';

$apiKey = '******************************';
$registrationIDs = $gcm_regid;

$data = $gcm_data;

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

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

//curl connection
$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);

curl_close($ch);

echo $result;
?>
最佳答案
从代码的第5行更改

$message = $gcm_data;

$fields = array(
    'registration_ids' => $registrationIDs,
     'data' => array("message" =>$message)
);

转载注明原文:php – GCM返回错误:字段数据必须是json数组 - 代码日志