Android云端推送C2DM PHP端实现向终端发送消息
$registration = '===Registration ID generated for the app===';
$auth = '===Google auth===';
//curl_setopt参数
$options = array(
CURLOPT_TIMEOUT => 60,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_URL => "https://android.apis.google.com/c2dm/send",
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE
);
//post参数
$params = array(
"registration_id" => $registration,
"collapse_key" => "===a string===",
"data.message" => "xxxx" 这个可以有多对
);
$postdata = http_build_query($params,null,"&");
$options[CURLOPT_POSTFIELDS] = $postdata;
//http header
$headers = array();
$headers[] = "Content-Length: " . strlen($postdata); #这个地方可费了劲了content-length一定要放在第一个,不然会报那个411.That an error的错误
$headers[] = "Authorization: GoogleLogin auth=" . $auth;
$options[CURLOPT_HTTPHEADER] = $headers;
//debug
$options[CURLOPT_HEADER] = TRUE;
$options[CURLOPT_VERBOSE] = TRUE;
$ch = curl_init();
if(!function_exists('curl_setopt_array')){
foreach((array)$options as $key=>$value){
curl_setopt($ch, $key, $value);
}
} else {
curl_setopt_array( $ch,$options);
}
$result = curl_exec($ch);
curl_close( $ch);
成功的话会返回id=0:1329988332025998%36eaed9800000031 类似的串
如果失败则会返回Error=错误消息
具体参考地址请看:http://code.google.com/intl/zh-CN/android/c2dm/#example
转载于:https://www.cnblogs.com/sblack/archive/2012/02/23/2365238.html