When I use GCM, I got an error: the "data" fields must be a JSON array. Does anyone have an idea on how to solve it? Thanks. The first part of my code, parts of the code are omitted:
<?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); } ?>
Here is the second part:
<?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; ?>
source share