GCM сервер уведомлений PHP не запускается для Cordova (PhoneGap) Android

Может быть, я упускаю что-то действительно простое … но я не мог понять это.

У меня есть server.php в качестве сервера уведомлений GCM. Когда я вызываю этот server.php в терминале (MAC) как

$ php server.php

, оно работает идеально.

Вот мой server.php

<?php
$data = array( 'message' => 'Hello!' );

$ids = array('APA91...'); //my actual registered ID from android device would go here

sendGoogleCloudMessage(  $data, $ids );
function sendGoogleCloudMessage( $data, $ids )
{
// key from Google APIs Console
$apiKey = 'AIzaS...'; //my actual API key would go here
$url = 'https://android.googleapis.com/gcm/send';

$post = array(
'registration_ids'  => $ids,
'data'              => $data,
);
$headers = array(
'Authorization: key=' . $apiKey,
'Content-Type: application/json'
);
$ch = curl_init();
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( $post ) );

// Actually send the push!
$result = curl_exec( $ch );

// Error? Display it!
if ( curl_errno( $ch ) )
{
echo 'GCM error: ' . curl_error( $ch );
}
curl_close( $ch );
echo $result;
}
?>

Теперь у меня на сервере есть код server.php, и я пытаюсь вызвать эту функцию через ajax из jquery mobile следующим образом:

$.ajax({
async: false,
type: "POST",
url: "http://myServer.com/server.php",
data: {"data":sentData}, //i have var sentData setup in actual code
cache: false,
success: function(data){
alert(data);
}
});

Но тот же рабочий код не работает, когда я пытаюсь вызвать его с помощью $ .ajax …
Что я здесь не так делаю?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]