消息推送方式

消息推送方式

1. 单推

1.1 说明

对使用App的某个用户,单独推送消息

1.2 实例

请求:

curl -H "Content-Type: application/json" \
    -H "authtoken:87297be59b7cd6eef61928785118300f3d1b46e964c7ccbb1ed8a6ace863813f" \
     https://restapi.getui.com/v1/9sQ07BI8xW7VeKElV9W9p6/push_single \
     -XPOST -d '{
                   "message": {
                   "appkey": "GVvUv4M8FZAF7u5a9H79m6",
                   "is_offline": true,
                   "offline_expire_time":10000000,
                   "msgtype": "notification"
                },
                "notification": {
                    "style": {
                        "type": 0,
                        "text": "请填写通知内容",
                        "title": "请填写通知标题"
                    },
                    "transmission_type": true,
                    "transmission_content": "透传内容"
                },
                "cid": "7d3fd7a8b1db11b830321fbe511848b3",
                "requestid": "12111111111111111111111"
            }'

响应:

{"result":"ok", "taskid":"RASS_0109_3ed7bcb9904a2d8208261d0c78a1e999", "status":"successed_offline"}

1.3 接口说明

属性 类型 是否必传 说明
message object 消息内容,见详情
notification
link
notypopload
transmission
object 消息应用模板,见详情
四种类型选其一
该属性与message下面的msgtype一致
push_info String - json串,当手机为ios,并且为离线的时候
cid String - 与alias二选一
requestid String 请求唯一标识
alias String - 与cid二选一
  • 响应数据
属性 类型 说明
result String ok 鉴权成功,见详情
taskid String 任务编号
desc String 错误信息描述
status String 推送结果
successed_offline 离线下发
successed_online 在线下发
successed_ignore 非活跃用户不下发

2. tolist群推

在执行群推任务的时候,需首先执行save_list_body接口,将推送消息保存在服务器上,后面可以重复调用tolist接口将保存的消息发送给不同的目标用户。

2.1 save_list_body保存消息共同体

2.1.1 实例

请求:

curl -H "Content-Type: application/json" \
     -H "authtoken:  xxxxx"  \
https://restapi.getui.com/v1/CKWfvgBDRF9aSnGrvD7IJ4/save_list_body \
    -XPOST -d '{
                   "message": {
                   "appkey": "GVvUv4M8FZAF7u5a9H79m6",
                   "is_offline": true,
                   "offline_expire_time":10000000,
                   "msgtype": "notification"
                },
                "notification": {
                    "style": {
                        "type": 0,
                        "text": "请填写通知内容",
                        "title": "请填写通知标题"
                    },
                    "transmission_type": true,
                    "transmission_content": "透传内容"
                }
           }'

响应:

{"result":"ok","taskid":"RASL_0119_5338f3c01e4f4a52bf08e26fa91da7e0"}

2.1.2 接口说明

属性 类型 是否必传 说明
message object 消息内容,见详情
notification
link
notypopload
transmission
object 消息应用模板,见详情
四种类型选其一
该属性与message下面的msgtype一致
push_info String - json串,当手机为ios,并且为离线的时候
task_name String 任务名称
可以给多个任务指定相同的task_name,后面用task_name查询推送结果能得到多个任务的结果
  • 响应数据
属性 类型 说明
result String 响应结果,见详情
taskid String 任务标识号,用于tolist接口的taskid
desc String 错误信息描述

注:此接口有频次控制,申请修改请联系邮箱:kegf@getui.com 。

2.2 toList接口

2.2.1 说明

消息群发给cid list或者alias list列表对应的客户群,当两者并存的时候,以cid为准;并使用save_list_body返回的taskId,调用toList接口,完成群推推送。

2.2.2 实例

请求:

curl -H "Content-Type: application/json" \
     -H "authtoken: f16e43e935238fffdb71c052a483267f59bbe9fac8b3cce7933b32615f75e0ef" \
     https://restapi.getui.com/v1/CKWfvgBDRF9aSnGrvD7IJ4/push_list  \
     -XPOST -d '{
                "cid":["1fa0795a57c863ecc9a9ea6437b8924f"],
                "taskid":"RASL_1229_3251236e02044869955169c98b380352",
                "need_detail":true
                }'

响应:

{"result":"ok", "cid_details":{"cid1":"no_user", "cid2":"successed_offline"}, "taskid":"RASL_0109_8b28bbad8a524e5799e8f07c8e79999"}

2.2.3 接口说明

属性 类型 是否必传 说明
cid String[] - cid为cid list,与alias list二选一
taskid String 任务号,取save_list_body返回的taskid
alias String[] - alias为alias list,与cid list二选一
need_detail boolean 默认值:false,是否需要返回每个CID的状态
  • 响应数据
属性 类型 说明
result String 响应结果,见详情
taskid String 任务标识号,用于tolist接口
desc String 错误信息描述
cid_details Map 目标cid用户推送结果详情
alias_details Map 目标别名用户推送结果详情

注:此接口有频次控制,申请修改请联系邮箱:kegf@getui.com 。

3. toapp群推

3.1 说明

针对某个,根据筛选条件,将消息群发给符合条件客户群

3.2 实例

请求:

curl -H "Content-Type: application/json" \
     -H "authtoken: f16e43e935238fffdb71c052a483267f59bbe9fac8b3cce7933b32615f75e0ef" \
     https://restapi.getui.com/v1/CKWfvgBDRF9aSnGrvD7IJ4/push_app \
     -XPOST -d '{
                "message": {
                   "appkey": "GVvUv4M8FZAF7u5a9H79m6",
                   "is_offline": false,
                   "msgtype": "notification"
                },
                "notification": {
                    "style": {
                        "type": 0,
                        "text": "请填写通知内容",
                        "title": "请填写通知标题"
                    },
                    "transmission_type": true,
                    "transmission_content": "透传内容"
                },
              "condition":[{"key":"phonetype", "values":["ANDROID"], "opt_type":0},
                                         {"key":"region", "values":["11000000", "12000000"], "opt_type":0},
                                         {"key":"tag", "values":["usertag"], "opt_type":0}],
                "requestid":"12341111111115678978"
                }'

响应:

{"result":"ok", "taskid":"RASA_0111_4fbcdb8155eb8e9002bec597f78d9999"}

3.3 接口说明

属性 类型 是否必传 说明
message - 消息内容,见详情
notification link、
notypopload、
transmission、
notification
消息应用模板,见详情
该属性名可替换,四种类型选其一,但必须与message下面的msgtype一致
push_info String - json串,当手机为ios,并且为离线的时候
condition - 筛选目标用户条件,参考下面的condition说明
requestid String 请求唯一标识
  • condition
属性 是否必传 说明
key 筛选条件类型名称(省市region,手机类型phonetype,用户标签tag)
values 筛选参数
opt_type 筛选参数的组合,0:取参数并集or,1:交集and,2:相当与not in {参数1,参数2,....}
  • 可选字段
字段名 类型 是否必传 说明
speed int 推送速度控制
task_name String 任务别名
duration_begin String 设定展示开始时间,格式为yyyy-MM-dd HH:mm:ss
duration_end String 设定展示结束时间,格式为yyyy-MM-dd HH:mm:ss
push_info - apns推送消息
  • 响应数据
属性 类型 说明
result String 响应结果,见详情
taskid String 任务标识号
desc String 错误信息描述

注:此接口有频次控制,申请修改请联系邮箱:kegf@getui.com 。

4. stop群推任务

4.1 说明

在有效期内的消息进行停止

4.2 实例

请求:

curl -H "Content-Type: application/json" \
     -H "authtoken:  xxxxx"  \
https://restapi.getui.com/v1/CKWfvgBDRF9aSnGrvD7IJ4/stop_task/OSL_0119_5338f3c01e4f4a52bf08e26fa91da7e0 \
    -XDELETE

响应:

{"result":"ok","taskid":"RASL_0119_5338f3c01e4f4a52bf08e26fa91da7e0"}

4.3 接口说明

属性 类型 说明
result String 操作结果,见详情
taskid String 停止的taskid任务

5. 批量单推接口

5.1 说明

批量发送单推消息

5.2 应用场景

在给每个用户的推送内容都不同的情况下,又因为单推消息发送较慢,可以使用此接口。

5.3 实例

请求:

curl -H "Content-Type: application/json"  \
     -H "authtoken:87297be59b7cd6eef61928785118300f3d1b46e964c7ccbb1ed8a6ace863813f" \
     https://restapi.getui.com/v1/9sQ07BI8xW7VeKElV9W9p6/push_single_batch  \
     -XPOST -d '{
                 "msg_list":[
                  {
                   "message": {
                               "appkey": "GVvUv4M8FZAF7u5a9H79m6",
                           "is_offline": true,
                           "offline_expire_time":10000000,
                           "msgtype": "notification"
                      },
                      "notification": {
                          "style": {
                            "type": 0,
                            "text": "请填写通知内容",
                            "title": "请填写通知标题"
                          },
                          "transmission_type": true,
                          "transmission_content": "透传内容"
                        },

                      "cid":"7d3fd7a8b1db11b830321fbe511848b3",
                  "requestid":"12345678911111111111111"
                   },{
                        "message":{
                                "appkey":"pMEgGQ9bgz5LVAPX8q8WH4",
                                "is_offline":false,
                                "msgtype":"link"
                               },
                    "link":{
                         "style": {
                                "type": 0,
                                "text": "请填写通知内容",
                                "title": "请填写通知标题",
                                "logo": "logo.png",
                                "logourl": "http://xxxx/a.png",
                                "is_ring": true,
                                "is_vibrate": true,
                                "is_clearable": true
                            },
                        "url":"打开网址",
                        "duration_begin":"2017-03-22 11:40:00",
                        "duration_end":"2017-03-29 11:40:00"
                    },
                    "cid":"1fa0795a57c863ecc9a9ea6437b8924f",
                    "requestid":"123456789"
                   }
                 ],
                 "need_detail":true
            }'

响应:

{"result":"ok", "taskid":"RASS_0111_4fbcdb8155eb8e9002bec597f78d9999"}

5.4 接口说明

属性 子属性 是否必传 说明
msg_list message 消息内容,见详情
msg_list notification、
link、
notypopload、transmission
消息应用模板,见详情
四种类型选其一
该属性与message下面的msgtype一致
msg_list cid 与alias二选一
msg_list requestid 请求唯一标识
need_detail - 是否需要详细返回值,默认:否
  • 响应数据
属性 类型 说明
result String 操作结果,见详情
taskid String 任务标识号
desc String 错误信息描述

6. 短信补量推送接口

6.1 说明

针对推送,在消息有效时间内,对未收到推送消息的用户进行短信补发,既提升消息触达又节省成本

6.2 接入流程

6.2.1 获取应用参数

进入个推开发者中心后,个推消息推送模块,注册app,获取 appId、appKey 和 masterSecret 参数(妥善保管)。

6.2.2 模板报备

进行短信补量推送前,必须在个推申请开通短信补量并报备短信模板。短信模板审核通过后,才能进行短信补量推送。短信模板报备审核的日期为1-2个工作日。

6.2.3 模板示例

模板ID 模板内容 相关参数解释
10000 示例【*】尊敬的${name},你的余额还剩${money}, 请尽快充值。 变量格式:${name},。

6.2.4 pn绑定

进行短信补量推送前,需要调用接口绑定cid与pn。推送时获取pn,进行消息下发。其中文档中所说的pn 都是指md5之后的手机号。

6.3 短信补量补发逻辑

个推推送消息下发时,对于在线用户,直接通过sdk通道下发,对于离线用户消息将存储在离线空间,等到用户设定的短信补发时间,将开始对已绑定pn的用户进行短信补发。 对于在补发前,经过个推通道成功下发消息的用户,将不再进行短信补发。

6.4 cid与pn绑定接口

6.4.1 接口描述

绑定cid和pn的关系,用户短信补量根据cid查询pn下发短信。

6.4.2 功能代码示例

 static String appId = "xxxxxxx";
    static String appkey = "xxxxxxx";
    static String masterSecret = "xxxxxxx";
    static String cid = "xxxxxxx";
    static String pnmd5 = "xxxxxxx";
    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
    public static void main(String[] args) {
        bindPn();
    }
    private static void bindPn() {
        IGtPush push = new IGtPush(host, appkey, masterSecret);
        Map<String, String> cidAndPn = new HashMap<String, String>();
        cidAndPn.put(cid, pnmd5);
        IPushResult res = push.bindCidPn(appId, cidAndPn);
        System.out.println(res.getResponse());
    }

6.4.3 具体参数

参数 类型 是否必填 最大长度 描述
appId String 32 个推分配给开发者的ID
cidAndPn Map 50 key是cid value是pnmd5【32位小写】

6.4.4 返回值说明

参数 类型 是否必填 描述 示例值 其他
result String 响应码 0 详细code码含义。参加文档最后【附录一】
batchRet String 返回每个cid的绑定结果 [{"code":"0","cid":"xxxx"}]

6.4.5 注意事项

1)目前接口最多支持一次绑定50个cid与pn的对应关系。绑定后会返回每个cid的绑定结果。

2)同个应用下pn和cid是一对一的关系,否则原关系会被替换

6.5 cid与pn解绑接口

6.5.1 接口描述

用户通过接口传递cid列表, 可以批量解绑与之相对应的pn的关系。

6.5.2 功能代码示例

 static String appId = "xxxxxxx";
     static String appkey = "xxxxxxx";
     static String masterSecret = "xxxxxxx";
     static String cid = "xxxxxxx";
     static String pnmd5 = "xxxxxxx";
     static String host = "http://sdk.open.api.igexin.com/apiex.htm";
     public static void main(String[] args) {
         unbindPn();
     }
     private static void unbindPn()  {
         IGtPush push = new IGtPush(host, appkey, masterSecret);
         List<String> cidList = new ArrayList<>();
         cidList.add(cid);
         IPushResult res = push.unbindCidPn(appId, cidList);
         System.out.println(res.getResponse());

6.5.3 具体参数

参数 类型 是否必填 最大长度 描述
appId String 32 开发者ID
cidList List 50 客户端身份ID列表

6.5.4 返回值说明

参数 类型 是否必填 描述 示例值 其他
result String 响应码 0 详细code码含义。参加文档最后【附录一】
batchRet String 返回每个cid的绑定结果 [{"code":"0","cid":"xxxx"}]

6.5.5 注意事项

1)目前接口最多支持一次解绑50个cid

6.6 pn查询接口

6.6.1 接口描述

用户通过接口传递cid列表, 可以查询与之相对的pn,接口会批量返回绑定关系。

6.6.2 用法举例

static String appId = "xxxxxxx";
    static String appkey = "xxxxxxx";
    static String masterSecret = "xxxxxxx";
    static String cid = "xxxxxxx";
    static String pnmd5 = "xxxxxxx";
    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
    public static void main(String[] args) {
        queryPnByCid();
    }
    private static void queryPnByCid() {
        IGtPush push = new IGtPush(host, appkey, masterSecret);
        List<String> cidList = new ArrayList<>();
        cidList.add(cid);
        IPushResult res = push.queryCidPn(appId, cidList);
        System.out.println(res.getResponse());
    }

6.6.3 具体参数

参数 类型 是否必填 最大长度 描述
appId String 32 开发者ID
cidList List 50 客户端身份ID列表

6.6.4 返回值说明

参数 类型 是否必填 描述 示例值 其他
result String 响应码 0 详细code码含义。参加文档最后【附录一】
batchRet String 返回每个cid的绑定结果 [{"code":"0","cid":"xxxx"}]

6.6.5 注意事项

1)目前接口最多支持一次解绑50个cid

6.7 短信补量推送接口

6.7.1 接口列表

接口定义 说明
pushMessageToApp 对应用的所有用户群发推送消息
pushMessageToSingle 向单个clientid或别名用户推送消息
pushMessageToList 上传clientid或别名列表,对列表中所有clientid或别名用户进行消息推送
注:详细的推送逻辑参考个推官网。这里只是补充短信推送的逻辑 参考地址:http://docs.getui.com/getui/server/java/push/

6.7.2 支持短信模板的个推消息模板

消息模板 中文含义 是否支持短信模板 其他
Notification 通知模板 消息模板具体含义参考:http://docs.getui.com/getui/server/java/template/
LinkTemplate 网页模板
NotyPopLoadTemplate 下载模板
TransmissionTemplate 透传模板

6.7.3 短信推送模板参数

成员名或方法名 类型 是否必填 描述 示例值 其他
setSmsTemplateId() String 推送的短信模板ID(短信模板说明) smsinfo.setSmsTemplateId("xxxx"); 具体使用,参考下面的代码中LinkTemplate中使用短信模板的示例。其他模板如此相同
setSmsContent() map 推送的短信模板中占位符的内容。 Map smsContent = new HashMap<>(); smsContent.put("name", "张三"); smsContent.put("money", "1234"); smsinfo.setSmsContent(smsContent);
setOfflineSendtime() long 推送后多久进行短信补发(单位:ms) smsinfo.setOfflineSendtime(100000L);

6.7.4 pushMessageToApp 完整示例

public static LinkTemplate linkTemplateDemo() throws Exception {
        LinkTemplate template = new LinkTemplate();
        template.setAppId(appId);
        template.setAppkey(appkey);
        Style0 style = new Style0();
        style.setTitle("请输入通知栏标题");
        style.setText("请输入通知栏内容");
        style.setLogo("icon.png");
        style.setLogoUrl("");
        style.setRing(true);
        style.setVibrate(true);
        style.setClearable(true);
        template.setStyle(style);
        template.setUrl("http://www.getui.com");
        return template;
    }
    public static SmsInfo smsInfoDemo() throws Exception {
        SmsInfo smsinfo = new SmsInfo();
        //短信模板ID 需要在个推报备开通 才可使用
        smsinfo.setSmsTemplateId("");
        //模板中占位符的内容k.v 结构
        Map<String, String> smsContent = new HashMap<>();
        smsContent.put("name", "张三");
        smsContent.put("money", "1234");
        smsinfo.setSmsContent(smsContent);
        //多久后进行离线补发的时间
        smsinfo.setOfflineSendtime(100000L);
        return smsinfo;
    }
    static String appId = "*****************";
    static String appkey = "*****************";
    static String masterSecret = "*****************";
    static String host = "*****************";
    public static void main(String[] args) throws Exception {
         IGtPush push = new IGtPush(host, appkey, masterSecret);
         LinkTemplate template = linkTemplateDemo();
         //短信补量信息
         template.setSmsInfo(smsInfoDemo());
         AppMessage message = new AppMessage();
         message.setData(template);
         message.setOffline(true);
         //离线有效时间,单位为毫秒,可选
         message.setOfflineExpireTime(24 * 1000 * 3600);
         //推送给App的目标用户需要满足的条件
         AppConditions cdt = new AppConditions();
         List<String> appIdList = new ArrayList<String>();
         appIdList.add(appId);
         message.setAppIdList(appIdList);
         //手机类型
         List<String> phoneTypeList = new ArrayList<String>();
         //省份
         List<String> provinceList = new ArrayList<String>();
         //自定义tag
         List<String> tagList = new ArrayList<String>();
         cdt.addCondition(AppConditions.PHONE_TYPE, phoneTypeList);
         cdt.addCondition(AppConditions.REGION, provinceList);
         cdt.addCondition(AppConditions.TAG,tagList);
         message.setConditions(cdt);
         IPushResult ret = push.pushMessageToApp(message);
         System.out.println(ret.getResponse().toString());
    }

6.7.5 pushMessageToSingle 完整示例

private static String appId = "";
    private static String appKey = "";
    private static String masterSecret = "";
    static String cid = "";
    //别名推送方式
    // static String Alias = "";
    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
    public static void main(String[] args) throws Exception {
        IGtPush push = new IGtPush(host, appKey, masterSecret);
        LinkTemplate template = linkTemplateDemo();
        //短信补量相关参数信息
        template.setSmsInfo(smsInfoDemo());
        SingleMessage message = new SingleMessage();
        message.setOffline(true);
        message.setOfflineExpireTime(24 * 3600 * 1000);
        message.setData(template);
        message.setPushNetWorkType(0);
        Target target = new Target();
        target.setAppId(appId);
        target.setClientId(cid);
        //target.setAlias(Alias);
        IPushResult ret = null;
        try {
            ret = push.pushMessageToSingle(message, target);
            System.out.println(ret.getResponse().toString());
        } catch (RequestException e) {
            e.printStackTrace();}
    }
public static LinkTemplate linkTemplateDemo() {
        LinkTemplate template = new LinkTemplate();
        // 设置APPID与APPKEY
        template.setAppId(appId);
        template.setAppkey(appKey);
        Style0 style = new Style0();
        // 设置通知栏标题与内容
        style.setTitle("请输入通知栏标题");
        style.setText("请输入通知栏内容");
        style.setLogo("icon.png");
        style.setLogoUrl("");
        style.setRing(true);
        style.setVibrate(true);
        style.setClearable(true);
        template.setStyle(style);
        template.setUrl("http://www.getui.com");
        return template;
    }
    public static SmsInfo smsInfoDemo() throws Exception {
        SmsInfo smsinfo = new SmsInfo();
        //短信模板ID 需要在个推报备开通 才可使用
        smsinfo.setSmsTemplateId("2017011");
        //模板中占位符的内容k.v 结构
        Map<String, String> smsContent = new HashMap<>();
        smsContent.put("name", "1234");
        smsContent.put("money", "1234");
        smsinfo.setSmsContent(smsContent);
        //多久后进行离线补发的时间(单位:ms)
        smsinfo.setOfflineSendtime(100000L);
        return smsinfo;
    }

6.7.6 pushMessageToList 完整示例

private static String appId = "";
    private static String appKey = "";
    private static String masterSecret = "";
    static String cid1 = "";
    static String cid2 = "";
    //别名推送方式
    // static String alias1 = "";
    // static String alias2 = "";
    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
    public static void main(String[] args) throws Exception {
        System.setProperty("gexin_pushList_needDetails", "true");
        IGtPush push = new IGtPush(host, appKey, masterSecret);
        NotificationTemplate template = notificationTemplateDemo();
        //设置短信补发模板
        template.setSmsInfo(smsInfoDemo());
        ListMessage message = new ListMessage();
        message.setData(template);
        message.setOffline(true);
        message.setOfflineExpireTime(24 * 1000 * 3600);
        List targets = new ArrayList();
        Target target1 = new Target();
        Target target2 = new Target();
        target1.setAppId(appId);
        target1.setClientId(cid1);
        target2.setAppId(appId);
        target2.setClientId(cid2);
        targets.add(target1);
        targets.add(target2);
        String taskId = push.getContentId(message);
        IPushResult ret = push.pushMessageToList(taskId, targets);
        System.out.println(ret.getResponse().toString());
public static NotificationTemplate notificationTemplateDemo() {
        NotificationTemplate template = new NotificationTemplate();
        template.setAppId(appId);
        template.setAppkey(appKey);
        Style0 style = new Style0();
        style.setTitle("请输入通知栏标题");
        style.setText("请输入通知栏内容");
        // 配置通知栏图标
        style.setLogo("icon.png");
        // 配置通知栏网络图标
        style.setLogoUrl("");
        // 设置通知是否响铃,震动,或者可清除
        style.setRing(true);
        style.setVibrate(true);
        style.setClearable(true);
        template.setStyle(style);
        template.setTransmissionType(2);
        template.setTransmissionContent("请输入您要透传的内容");
        return template;
    }
    public static SmsInfo smsInfoDemo() throws Exception {
        SmsInfo smsinfo = new SmsInfo();
        //短信模板ID 需要在个推报备开通 才可使用
        smsinfo.setSmsTemplateId("2017011");
        //模板中占位符的内容k.v 结构
        Map<String, String> smsContent = new HashMap<>();
        smsContent.put("code", "1234");
        smsContent.put("time", "1234");
        smsinfo.setSmsContent(smsContent);
        //离线多久后开始补发(单位:ms)
        smsinfo.setOfflineSendtime(100000L);
        return smsinfo;
    }

6.7.7 返回值说明

参数 类型 是否必填 描述 示例值
result String 响应码 result=ok
contentId String 任务ID contentId=xxxxxxx
smsResult String 短信提交结果 smsResult=accept
smsResultMsg String 短信提交失败结果 smsResultMsg=模板不存在

6.7.8 推送返回的完整结果示例

结果 示例 说明
短信补量提交成功 {result=ok, contentId=xxxxx, smsResult=accept} 消息推送成功,短信提交成功。
短信补量提交失败 {result=ok, smsResultMsg=模板不存在, contentId=xxxxxxx, smsResult=error} 消息推送成功,短信提交失败。

6.7.9 注意事项

1)短信参数填错,将不会进行短信补量,但是通过个推的sdk推送的消息会正常下发

2)短信补量的开始时间必须在个推通道的离线时间内,且不大于服务端限制值(目前设置是3天)。

3)短信补发的整个内容的总长度不能超过70字。

6.8 pn与cid操作的相关状态码

状态码 含义
0 成功
1 cid不存在
2 cid与appid不匹配
3 不能覆写低级别的PN绑定
4 应用下该PN已经绑定更活跃的cid
5 cid为空
6 pn为空
7 该cid没有绑定PN值
8 其他原因导致的失败
通知
2018.03.21 Android SDK 4.3.0.0

增加通知到达、点击回调 适配Android 8.0 修复若干其他bug

......
2018.03.19 Android SDK 2.12.3.0

增加通知到达、点击回调 适配Android 8.0 修复若干其他bug

......
2018.01.29 JAVA SDK 4.0.1.17

苹果消息推送添加语音功能(VOIP)

......
2018.01.25 iOS SDK 2.2.0.0

新增 VOIP 推送及统计支持。 优化 SDK 解决已知问题。

......
2017.12.18 iOS SDK 2.1.0.0

新增 SDK 离线状态返回。 优化 SDK 解决已知问题。

......

文档中心搜索