Android 云端推送C2DM php实现向终端推送消息
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
更多相关文章
- Android Studio构建时报gradle相关错误的解决办法
- android studio 打包出现的错误
- Android 中读取SD卡文件时抛出NullPointerException错误解决办法
- Error inflating class com.google.android.material.bottomnavi
- android Activity 和 Service 之间 传参数
- Android 编译错误集锦