2017-04-10 47 views
-1

我正尝试在Android设备上发送Google FireBase推送通知。下面我的代码谷歌FCM字段“数据”必须是JSON数组

function send_android_notification($deviceToken="",$message="",$input_data=array()) 
    {  
    $apiKey = 'XXXXXXXXXX'; 
    // Set POST variables 
    $url = 'https://fcm.googleapis.com/fcm/send'; 
    $fields = array(
      //'to' => $deviceToken, 
      'registration_ids' => array($deviceToken), 
      'notification'=> array("body" => $message,"title"=>"ABCD","icon"=>""), 
      'data' => $input_data 
      ); 
    $headers = array( 
       'Authorization: key=' . $apiKey, 
       'Content-Type: application/json' 
      ); 
    // Open connection 
    $ch = curl_init($url); 
    // Set the url, number of POST vars, POST data 
    //curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
    // Execute post 
    $result1 = curl_exec($ch); 
    echo $result1; 
    curl_close($ch); 
    } 

,但它给我下面的错误,而我发送推送通知

字段“数据”必须是一个JSON数组:[]

+1

试试这个json_encode($领域,JSON_FORCE _OBJECT) – Scaffold

+0

谢谢@Scaffold您节省了我的时间。完成完成 – Sadikhasan

回答

0

您需要编码您的阵列以JSON

json_encode($input_data)

相关问题