一、 集成限制
1. 接口限制
*接口限制
前置条件: 需要有接入APPKEY信息(申请MobSDK的appkey流程),开通MobPush产品; 官网MobPush->推送设置填写服务器IP地址绑定,
仅绑定的ip才有调用权限; 接口使用RestAPI规范,所有请求接口新增、修改使用POST方法;
所有查询接口使用GET方法; 请求Header信息需要增加key和sign两个参数,请求内容参数使用JSON格式,并且使用UTF-8编码。
频率限制: webapi全部接口的请求频率限制,默认800次/分钟。
*消息推送条数限制
单推(Rid推送或者别名推送):没有限制;
群体推送(智能标签推送):没有限制;
全部人群(广播):100次/天,每小时不超过10次;
*鉴权
MobPush Rest Api 采用MD5参数签名认证的方式。
避免AppSecret的直接传输; 可对请求参数进行完整性校验,保障数据不可篡改。
*基本步骤:
在MobTech开发者平台->MobPush推送设置->服务器IP地址绑定->添加地址列表
在请求头添加 key,sign两个参数
key值为AppKey的值
sign值为(请求体+AppSecret的值)md5加密 32位小写
注:请尽量确保请求体内容无间隔且请求体以“source”开头
2. 推送接口
下面展示代码。
$sMobKey = "自己注册的appKey"; //应用程序(appKey),只能填一个。 appKey
$sMobSecret = "自己注册的appSecret"; //主密码 appSecret
//请求参数
$arrBody = [
'source' => 'webapi',
'appkey' => $sMobKey,
'pushTarget' => [
'target' => 1, //推送方式 别名推送
'alias' => [$sUserAllas], //别名 可设置多个 数组格式
],
'pushNotify' => [
'plats' => $nPlats, //推送机型 1 android; 2 ios
'content' => $sContent, //推送内容
'type' => $nType, //推送类型:1通知;2自定义
],
'pushForward' => [
'nextType' => 2, //0 打开首页 1 link跳转 2 scheme 跳转
'scheme' => $sPageUrl, //跳转指定页面
'schemeDataList' => $arrPageParam, //跳转页面携带参数 格式
],
"androidNotify" => [
"style" => 0, //显示样式标识 0:"普通通知";1:"大文字样式";2:"大图样式";3:"多行内容";默认: 0
"warn" => "1", //提醒类型: 1提示音;2震动;3指示灯,如果多个组合则对应编号组合如:12 标识提示音+震动
"sound" => "warn",
],
];
//设置头部 设置加密标识
$sSign = md5(json_encode($arrBody).$sMobSecret);
$arrHeader = array("Content-Type:application/json","key:".$sMobKey,'sign:'.$sSign);
//执行推送
$result = $this->push_curl($this->sMobUrl , json_encode($arrBody) , $arrHeader);
以上便是代码的所有部分 以下展示请求
3. 错误码 4800
A. 出现以下提示 , 请检查提交header
{
"status": 4800,
"res": null,
"error": "请求头信息缺少key字段"
}
B. 成功之后提示
{
"status": 200,
"res": {
"batchId": "4bs147e26lltx1b0g",
"fetched": null,
"uninstalls": null,
"closes": null,
"notFounds": null
},
"error": null
}
C. header设置