2015-05-26 5 views
-1

Я использую GCM в php. Все отлично. Но им получить ответ какПредупреждение о GCM с PHP

"Field \"data\" must be a JSON array: example\n" 

Мой код ГКМ является

function sendNotification($registrationIdsArray, $messageData) { 
     $data = array(
      'data' => $messageData, 
      'registration_ids' => $registrationIdsArray 
     ); 
     var_dump($data); 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header); 
     curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send"); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
     $response = curl_exec($ch); 
     curl_close($ch); 
     return $response; 
    } 

и мой $ объект данных

{"data":"example","registration_ids":["apikey1", "apikey2"]} 

Что недостающий код GCM здесь.

+0

$ MessageData Шоул быть массивом не строка –

+0

Как я могу изменить в массиве? – Deen

+0

Я изменил $ messageData в массив. но теперь я получаю «{\" multicast_id \ ": 8115817839537145784, \" success \ ": 0, \" failure \ ": 1, \" canonical_ids \ ": 0, \" results \ ": [{\" error \ ": \" MismatchSenderId \ "}]}" – Deen

ответ

0

данные, которые вы передаете должны быть массив не является строкой, как этот

$messageData = array(
    'success' => 1, 
    'title' => $data['title'], 
    'desc' => $data['message'] 
); 
+0

получение ошибки mismatchsenderid – Deen

Смежные вопросы