1

Androidアプリでプッシュ通知を送信するためのこのスクリプトがあります:

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

?>

携帯電話にプッシュ通知が届きません。問題は、実際にはスクリプトから何も出力されないということecho $result;です。

これは可能ですか?

何か案は?

解決


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

?>

今では完全に機能します。

4

1 に答える 1

0

エラーが見つかりました。

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); を行に置き換えるcurl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

質問のコードを修正したので、動作するようになりました。

于 2013-03-07T10:21:42.087 に答える