推送通知的Php脚本不返回任何内容

I have this script for sending a push notification on my android app :

<?php
// Replace with real BROWSER API key from Google APIs
$apiKey = "AIzaSyAATjQOVDdOUiHra0H-EfxpobQcqOsdwqa";

// Replace with real client registration IDs. Put the correct registration id you are getting from app. If you are using eclipse check your logcat you will get it there.
$registrationIDs = array("APA91bEmxWS9bsXLsixaYQ6zuByM0SzFWe5DEKVLO68923hW3Mo2qB6bIH2LarP5WgzKasMtFAdVyy8YQuwv0YbrRNwdGFORh1wQvQ9uKBkC3jH6uXBYAQOv5xfzrsjYjqcQK8syikrQ6dq6oRrp9XUnimdj_4oBbw" );

// Message to be sent
$message = "Push working!";


// Set POST variables.
$url = 'https://android.googleapis.com/gcm/send';

$fields = array(
        'registration_ids'  => $registrationIDs,
        'data'              => array( "message" => $message ) /*Make sure that message is the key you are using in GCMIntentService.java onMessage() ->  extras.getString("message");*/
);

$headers = array(
        'Authorization: key=' . $apiKey,
        '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 );
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );


// Execute post
$result = curl_exec($ch);


// Close connection
curl_close($ch);

// Echo success or failure
echo $result;

?>

I never get any push notification on my phone. The thing is that actually i never get any output from the script like the echo $result; returns nothing.

Is this even possible?

Any ideas?

Solution


<?php
// Replace with real BROWSER API key from Google APIs
$apiKey = "AIzaSyAATjQOVDdOUiHra0H-EfxpobQcqOsdwqa";

// Replace with real client registration IDs. Put the correct registration id you are getting from app. If you are using eclipse check your logcat you will get it there.
$registrationIDs = array("APA91bEmxWS9bsXLsixaYQ6zuByM0SzFWe5DEKVLO68923hW3Mo2qB6bIH2LarP5WgzKasMtFAdVyy8YQuwv0YbrRNwdGFORh1wQvQ9uKBkC3jH6uXBYAQOv5xfzrsjYjqcQK8syikrQ6dq6oRrp9XUnimdj_4oBbw" );

// Message to be sent
$message = "Push working!";


// Set POST variables.
$url = 'https://android.googleapis.com/gcm/send';

$fields = array(
        'registration_ids'  => $registrationIDs,
        'data'              => array( "message" => $message ) /*Make sure that message is the key you are using in GCMIntentService.java onMessage() ->  extras.getString("message");*/
);

$headers = array(
        'Authorization: key=' . $apiKey,
        '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 );
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );


// Execute post
$result = curl_exec($ch);


// Close connection
curl_close($ch);

// Echo success or failure
echo $result;

?>

Now it works perfectly.

Found the error.

Replace line curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); with line curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

I corrected the code on the question so now it works.