0

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;`

}

ここに画像の説明を入力

4

2 に答える 2

1

編集: 申し訳ありませんが、JSON GCM ペイロード データは連想配列である必要があります。古いフレーバーのプロトコルと混同されています。とはいえ、Android 側での意図はどのようなものですか?

編集:余分なバンドル全体をダンプします。

Bundle b = intent.getExtras();
for(String k : b.keySet())
    Log.d("tag", k + "=" + b.get(k).toString());
于 2013-10-23T19:04:50.127 に答える