极光推送 api ios参数问题
这是首个app项目,推送用的是极光推送jpush
由于用官方文档出现接收多条的问题,在网上找到一套封装好的,非常感觉这位开发者
//推送。指定人
error_reporting(E_ALL^E_NOTICE);
class ApipostAction{
private $_appkeys = 'xxx';
private $_masterSecret = 'xxx';
function request_post($url="",$param="",$header="") {
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
// 增加 HTTP Header(头)里的字段
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// 终止从服务端进行验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($ch);//运行curl
curl_close($ch);
return $data;
}
function send($phone,$title,$message)
{
$url = 'https://api.jpush.cn/v3/push';
$base64=base64_encode("$this->_appkeys:$this->_masterSecret");
$header=array("Authorization:Basic $base64","Content-Type:application/json");
// print_r($header);
//$param='{"platform":"all","audience":"all","notification" : {"alert" : "'.$message.'"},"message":{"msg_content":"'.$message.'","title":"'.$title.'"}}';
//自定义消息
//$param='{"platform":"all","audience":{"alias":["'.$phone.'"]},"message":{"msg_content":"'.$message.'","title":"'.$title.'"}}';
//极光推送 通知
$param='{"platform":"all","audience":{"alias":["'.$phone.'"]},"notification":{
"android": {
"alert": "你有一条新的消息",
"title": "xx",
"builder_id": 1,
"extras": {
"newsid": '.$message.'
}
},
"ios": {
"alert": "你有一条新的消息",
"sound": "xx",
"badge": "+1",
"extras": {
"newsid": '.$message.'
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}}';
$res = $this->request_post($url,$param,$header);
$res_arr = json_decode($res, true);
//print_r($res_arr);
}
}
直接调用传参数就可以
$phone = show_info('user_info',$ms_receive_id,'id','phone');
$jpush=new ApipostAction();
$jpush->send($phone,'xxx',$uid);
这里传的message似乎没什么卵用,由于第一次接触,只是用做推送信息,手机通知栏会提示就ok
这里比较注意的是参数问题,由于ios有开发环境(测试)和生产环境(上线),"apns_production"参数 字段来制定推送环境。True 表示推送生产环境,False 表示要推送开发环境; 如果不指定则为推送生产环境 这是要注意的地方
在指定标签发送时,"alias":["'.$phone.'"] 这里的双引号也得注意下。
总归一句话官方文档和栗子很重要
其他的可具体参考官方文档http://docs.jpush.io/server/rest_api_v3_push/