2015-01-21 37 views
1

GCM推送通知。當我使用GCM推送通知,錯誤與PHP

Field"data"mustbeaJSONarray: { 
    "details": [ 
     { 
      "regid": "APA91bH8zxTxfoSLWhE21IbTR9a10cvIcm17-zsPY_0OAy3JhO_8gTwMwwAUd_4vZiLu5UF4A1m8R3TEIffDaChVR0y2us9iebngkaWlOM34ix4PUeOgIoM9aGOcxLLECAGjKNSwupTY0p2O0BeXjSCp8RYFaD-xzg", 
      "status": "true", 
      "post_userid": "34", 
      "post_id": "7", 
      "postuser_name": "dev", 
      "message": "gggggg" 
     }]} 

而且給我的錯誤:「字段的數據必須是一個JSON陣列」

請指導我

我的代碼:

$fields = array('data'=> $message); 
$headers = array('Authorization: key=' . API_ACCESS_KEY, 'Content-Type: application/json'); 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL, '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; 
+1

請顯示用於發送消息到GCM的代碼。 – Eran 2015-01-21 10:31:29

+0

$ fields = array('data'=> $ messsssagedddd); \t \t \t \t \t \t \t \t \t \t \t \t $頭=陣列( '授權:鍵=' API_ACCESS_KEY,\t '內容類型:應用/ JSON'。\t \t); \t \t \t \t \t \t \t \t $ CH = curl_init(); \t \t \t \t curl_setopt($ ch,CURLOPT_URL,'https://android.googleapis.com/gcm/send'); \t \t \t \t curl_setopt($ ch,CURLOPT_POST,true); \t \t \t \t curl_setopt($ ch,CURLOPT_HTTPHEADER,$ headers); \t \t \t \t curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); \t \t \t \t curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false); \t \t \t \t curl_setopt($ ch,CURLOPT_POSTFIELDS,json_encode($ fields)); \t \t \t \t $ result = curl_exec($ ch); \t \t \t \t curl_close($ ch); echo $ result; – 2015-01-21 10:37:42

+0

我的代碼是:$ fields = array('data'=> $ message); \t \t \t \t \t \t \t \t \t $頭=陣列( '授權:鍵=' API_ACCESS_KEY,\t。 '內容類型:應用/ JSON' \t \t); \t \t \t \t \t \t \t \t $ CH = curl_init(); \t \t curl_setopt($ ch,CURLOPT_URL,'https://android.googleapis。com/gcm/send'); \t \t curl_setopt($ ch,CURLOPT_POST,true); \t \t curl_setopt($ ch,CURLOPT_HTTPHEADER,$ headers); \t \t curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); \t curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false); \t \t \t \t curl_setopt($ ch,CURLOPT_POSTFIELDS,json_encode($ fields)); \t \t $ result = curl_exec($ ch); \t \t \t \t curl_close($ ch); \t \t \t \t echo $ result; – 2015-01-21 10:39:33

回答

1

嗯,你的JSON確實不是n像它應該看起來一樣。 它應該是這樣的:

{ 
    "data": { 
     "status": "true", 
     "post_userid": "34", 
     "post_id": "7", 
     "postuser_name": "dev", 
     "message": "gggggg" 
    }, 
    "registration_ids":["APA91bH8zxTxfoSLWhE21IbTR9a10cvIcm17-zsPY_0OAy3JhO_8gTwMwwAUd_4vZiLu5UF4A1m8R3TEIffDaChVR0y2us9iebngkaWlOM34ix4PUeOgIoM9aGOcxLLECAGjKNSwupTY0p2O0BeXjSCp8RYFaD-xzg"] 
} 
+0

$字段=陣列( 'registration_ids'=> $ msgd,陣列( '數據'=> $消息)); 「registration_ids」 字段不是JSON陣列 – 2015-01-21 12:10:27

+0

@DevangADD然後使其JSON數組。我不知道PHP,但可能類似'$ fields = array('registration_ids'=> array($ msgd),array('data'=> $ message));'會工作。 – Eran 2015-01-21 12:13:20

+0

我用這個代碼:$ fields = array('registration_ids'=> $ msgd,array('data'=> $ message));它會顯示這個錯誤「」registration_ids「字段不是JSON數組」 – 2015-01-21 12:15:30