Push-уведомление в Android C2DM - PullRequest
1 голос
/ 20 февраля 2012

Я разрабатываю пример приложения push-уведомлений в Android с использованием c2dm.Вот мой PHP-код для отправки сообщения с сервера на устройство.

function sendMessageToPhone($authCode, $deviceRegistrationId, $msgType, $messageText) {

    $headers = array('Authorization: GoogleLogin auth=' . $authCode);
    $data = array(
        'registration_id' => $deviceRegistrationId,
        'collapse_key' => $msgType,
        'data.message' => $messageText //TODO Add more params with just simple data instead           
    );

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");
    if ($headers)
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);


    $response = curl_exec($ch);

    curl_close($ch); 

}
sendMessageToPhone("my application server auth token ","my device id","UTF-8","hello");

Но я получаю «Нет информации».уведомление на моем эмуляторе.Где я иду не так?Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 21 февраля 2012

$ch = curl_init();<br> curl_setopt($ch, CURLOPT_URL, "https://android.apis.google.com/c2dm/send");<br> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br> curl_setopt($ch, CURLOPT_POST, 1);<br> curl_setopt($ch, CURLOPT_POSTFIELDS, $data);<br> curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: GoogleLogin auth=$token", "Content-Length: $len", "Content-Type: application/x-www-form-urlencoded"));<br> echo curl_exec($ch);<br> curl_close($ch);

Это php-код, который мое приложение использует для отправки сообщений C2DM, где $ data - это ваш массив данных. Обратите внимание, что длина содержимого необходима и является длиной ваших данных.

РЕДАКТИРОВАТЬ: то, что вы также можете найти полезным * класс 1006 * для php, что делает отправку сообщений немного приятнее.

...