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

更多相关文章

  1. Android Studio构建时报gradle相关错误的解决办法
  2. android studio 打包出现的错误
  3. Android 中读取SD卡文件时抛出NullPointerException错误解决办法
  4. Error inflating class com.google.android.material.bottomnavi
  5. android Activity 和 Service 之间 传参数
  6. Android 编译错误集锦

随机推荐

  1. Android(安卓)Process 'command 'C:\Use
  2. Android(安卓)之 数据存储方式
  3. 【Android】Android中不同手机分辨率适配
  4. Android菜鸟日记18-button的按钮效果
  5. Android 的上下文菜单: Context Menu
  6. android中的按键处理
  7. 什么是 Android?
  8. android 移植 一 准备
  9. Android studio创建java项目
  10. android中文字高亮设置案例