Я разрабатываю веб-приложение (используя GAE для PHP), которое уведомляет клиентов Android (через GCM - Google Cloud Messaging), когда какой-либо контент доступен для загрузки.
Следующий PHP script должен выполнить работу:
$json = array( 
    'data' => array( ... ), 
    'registration_ids' => array( ... )
);
$data = json_encode( $json );
$context = array( 
    'http' => array(
        'method' => 'post',
        'header' => 'Authorization: key=MY_SECRET_KEY' . "\r\n" .
                    'Content-Type: application/json' . "\r\n",
        'content' => $data
    )
);
$context = @stream_context_create($context);
$result = @file_get_contents("https://android.googleapis.com/gcm/send", false, $context);
Приведенный выше код работает правильно, когда приложение развернуто, но не выполняйте его в локальной среде разработки.
В локальной среде разработки $result есть null и file_get_contents "echo" следующее предупреждение failed to open stream: HTTP request failed! HTTP/1.0 405 Method Not Allowed.
