在输出中获得花括号 - GCM发送多个数据

时间:2013-10-23 18:50:07

标签: php android google-cloud-messaging

我正在尝试使用GCM将数据发送到设备,但在输出中获得花括号(如下图所示)。我是php的新手,我想知道如何解决这个问题。以下是PHP服务器代码的一部分:

 public function send_notification($registatoin_ids, $message, $title) {
    // include config
    include_once './config.php';


    $url = 'https://android.googleapis.com/gcm/send';
$data = array("title" => $title, "message" => $message);
    $fields = array(
        'registration_ids' => $registatoin_ids,
        'data' => $data
    );

   $headers = array(
        'Authorization: key=' . GOOGLE_API_KEY,
        'Content-Type: application/json'
    );
    // 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);

    // Disabling SSL Certificate support temporarly
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

    // Execute post
    $result = curl_exec($ch);
    if ($result === FALSE) {
        die('Curl failed: ' . curl_error($ch));
    }

    // Close connection
    curl_close($ch);
    echo $result;
}

/////////

我像这样更改了send_message.php并修复了它。

if (isset($_GET["regId"]) && isset($_GET["message"]) && isset($_GET["title"])) {
$regId = $_GET["regId"];
$messagem = $_GET["message"];
$titlem = $_GET["title"];

include_once './GCM.php';

$gcm = new GCM();

$registatoin_ids = array($regId);
$message = array("message" => $messagem);
$title = array($titlem);


$result = $gcm->send_notification($registatoin_ids, $messagem, $titlem);

echo $result;`

}

enter image description here

2 个答案:

答案 0 :(得分:1)

编辑:抱歉,使用JSON GCM有效负载数据应该是一个关联数组。混合了旧协议的味道。那就是说,你对Android方面的意图是什么样的?

编辑:转储整个额外的包。

Bundle b = intent.getExtras();
for(String k : b.keySet())
    Log.d("tag", k + "=" + b.get(k).toString());

答案 1 :(得分:0)

编辑:

好吧,我认为你的问题是你没有密钥就发布了值{.....}。这就像说

http:// ..... com?{myjson:“stuff”}

我没有查看api,但它似乎应该像post“data =”。json_encode($ fields);