通过PHP发送GCM不会在MessageReceived上显示数据


Sending a GCM via PHP not shows data onMessageReceived

当我通过CURL和PHP将数据从服务器发送到安卓应用程序上的GCM时,我开始在安卓设备上使用GCM。在onMessageReceived上只得到一个null。我认为这是我在应用程序上使用的代码,但如果我通过终端调用CURL,它会显示数据。希望你能帮助我使用PHP脚本,看看这有什么问题,顺便说一句,在这两种情况下,我都收到了GCM的请愿书,但只有通过终端才能显示数据

<?php
// Message to be sent

// Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
$fields = array(
                'to'  => 'ezgWcLrhacM:APA91bHzxeKdOnK.......gBfmpF3YrqOkjuHii296Ie1TPEmeQi-B-g_DJg0EHq89V0........7DCh3bzuHDOpN1Ksmp1n_EpkZvKrl56rrWB7M5Z8I',
                'data '  => array( 'message' => 'Hello World!' ),
                );
$headers = array( 
                    'Content-Type: application/json',
                    'Authorization: key=AIzaSyBBgVZuc...........DnZeDY4OZr_uyI' 
                );

// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
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_POSTFIELDS, json_encode( $fields ) );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//echo $ch;
//$info = curl_getinfo($ch);

// Execute post
echo json_encode($fields);
$result = curl_exec($ch);
// // Close connection
curl_close($ch);
 echo $result;
?>

以及来自安卓终端的日志

05-07 06:34:48.694 14037-14239/mx.com.iubix.iubixmessage D/ListenerService: Datos recibidosBundle[{collapse_key=do_not_collapse}] 
05-07 06:34:48.694 14037-14239/mx.com.iubix.iubixmessage D/ListenerService: From: 1007097169676 
05-07 06:34:48.694 14037-14239/mx.com.iubix.iubixmessage D/ListenerService: Message: null

我从终端发送的代码在哪里

curl --header "Authorization: key=AIzaSyBBgVZ........eDY4OZr_uyI" --header "Content-Typ.....e: application/json" https://android.googleapis.com/gcm/send -d "{'"to'":'"ezgWcLrhacM:APA91bHzxeKdOnKgk.......ZxjEchBezgBfmpF3YrqOkjuHii296Ie1TPEmeQi-B-g_DJg0EHq89V0yllLGw9Yji0zv.......Ksmp1n_EpkZvKrl56rrWB7M5Z8I'",'"data'":{'"message'":'"Hello World'"}}"

这一个很好

您可以尝试以下脚本:

<?php 
define( 'API_ACCESS_KEY','YOUR API KEY' );
$registrationIds = array('ID's OF WHOM YOU WANT TO SEND NOTIFICATION');
$msg = array
(
    'Message'   => $text,
); 
$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'          => $msg
);
$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://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;
?>

对不起,伙计们已经在数据参数中解决了它,我有一个额外的空间,并删除了它,效果很好!很抱歉给您带来不便!无论如何,谢谢大家

'data ' 

将此更改为

 'data'