由网友(唯一的好老公)分享简介:我如何整合新的谷歌云消息传递在PHP后台?How can I integrate the new Google Cloud Messaging in a PHP backend?推荐答案这code将通过PHP CURL发送GCM消息到多个注册的ID。 This code will send a GCM mess...
我如何整合新的谷歌云消息传递在PHP后台?
How can I integrate the new Google Cloud Messaging in a PHP backend?
推荐答案
这code将通过PHP CURL发送GCM消息到多个注册的ID。
This code will send a GCM message to multiple registration IDs via PHP CURL.
//------------------------------
// Payload data you want to send
// to Android device (will be
// accessible via intent extras)
//------------------------------
$data = array( 'message' => 'Hello World!' );
//------------------------------
// The recipient registration IDs
// that will receive the push
// (Should be stored in your DB)
//
// Read about it here:
// http://developer.android.com/google/gcm/
//------------------------------
$ids = array( 'abc', 'def' );
//------------------------------
// Call our custom GCM function
//------------------------------
sendGoogleCloudMessage( $data, $ids );
//------------------------------
// Define custom GCM function
//------------------------------
function sendGoogleCloudMessage( $data, $ids )
{
//------------------------------
// Replace with real GCM API
// key from Google APIs Console
//
// https://code.google.com/apis/console/
//------------------------------
$apiKey = 'abc';
//------------------------------
// Define URL to GCM endpoint
//------------------------------
$url = 'https://android.googleapis.com/gcm/send';
//------------------------------
// Set GCM post variables
// (Device IDs and push payload)
//------------------------------
$post = array(
'registration_ids' => $ids,
'data' => $data,
);
//------------------------------
// Set CURL request headers
// (Authentication and type)
//------------------------------
$headers = array(
'Authorization: key=' . $apiKey,
'Content-Type: application/json'
);
//------------------------------
// Initialize curl handle
//------------------------------
$ch = curl_init();
//------------------------------
// Set URL to GCM endpoint
//------------------------------
curl_setopt( $ch, CURLOPT_URL, $url );
//------------------------------
// Set request method to POST
//------------------------------
curl_setopt( $ch, CURLOPT_POST, true );
//------------------------------
// Set our custom headers
//------------------------------
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
//------------------------------
// Get the response back as
// string instead of printing it
//------------------------------
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
//------------------------------
// Set post data as JSON
//------------------------------
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 );
}
//------------------------------
// Close curl handle
//------------------------------
curl_close( $ch );
//------------------------------
// Debug GCM response
//------------------------------
echo $result;
}
如果您收到一个不可用的错误code,当您尝试发送一个GCM,产生的浏览器API 键从谷歌API控制台和使用它的而不是服务器密钥
If you receive an "Unavailable" error code when you try to send a GCM, generate a Browser API key from the Google APIs Console, and use it instead of the server key.
相关推荐
最新文章