推送API

此SDK已停止维护,请开发者对接 RestApi V2

推送API

代码示例

推送API,GitHub示例点此查看

简述

个推为开发者提供了如下3种消息推送方式:

  • toSingle :简称“单推”,指向单个用户推送消息
  • toList:简称“批量推”,指向制定的一批用户推送消息
  • toApp:简称“群推”,指向APP符合筛选条件的所有用户推送消息,支持定速推送、定时推送,支持条件的交并补功能

【toSingle】执行单推

功能描述

向单个用户发送消息,可根据cid或别名指定用户。

注:个推使用clientid来标识每个独立的用户,每一台终端上每一个app拥有一个独立的clientid。

接口名称

IPushResult pushMessageToSingle(SingleMessage message, Target target);

请求参数

名称 类型 是否必需 默认值 描述
message SingleMessage 消息体
target Target 推送目标

SingleMessage

名称 类型 是否必需 默认值 描述
isOffline boolean false 是否保持离线消息
offlineExpireTime long 1小时 过多久该消息离线失效(单位毫秒) 支持1-72小时*3600000毫秒
pushNetWorkType long 0 推送网络要求
0:联网方式不限;
1:仅wifi;
2:仅移动网络
strategyJson json - 厂商下发策略:控制消息经由个推通道或厂商下发。
示例:{\"default\":4,\"ios\":4,\"st\":4}
字段含义如下:
1: 个推通道优先,在线经个推通道下发,离线经厂商下发(默认);
2: 在离线只经厂商下发;
3: 在离线只经个推通道下发;
4: 优先经厂商下发,失败后经个推通道下发;
JAVA SDK版本要求4.1.1.0以上
data ITemplate 设置推送效果,点击查看详细说明

Target

名称 类型 是否必需 默认值 描述
appId String 应用唯一ID
clientId String 客户端身份ID
clientId和alias二选一
alias String 用户别名
clientId和alias二选一

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
taskId String 任务ID
status String 推送结果
successed_offline 离线下发(包含厂商通道下发)
successed_online 在线下发
successed_ignore 最近90天内不活跃用户不下发
aliasDetails JsonObject 对应每个cid的推送详情,环境变量设置gexin_pushSingle_aliasDetail为true时返回此数据,不设置或为false不返还此数据。

返回示例

{
    "result":"ok",
    "taskId":"xxx",
    "status":"successed_online",
    "aliasDetails": {
        "cid1":"successed_online",
        "cid2":"successed_offline"
    }
}

代码示例

import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.SingleMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.exceptions.RequestException;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.LinkTemplate;
import com.gexin.rp.sdk.http.Constants;

public class PushtoSingle {
    // 详见【概述】-【服务端接入步骤】-【STEP1】说明,获得的应用配置
    private static String appId = "";
    private static String appKey = "";
    private static String masterSecret = "";

    static String CID = "";
    // 别名推送方式
    // static String Alias = "";
    // 如果需要使用HTTPS,直接修改url即可
    //private static String url = "https://api.getui.com/apiex.htm";
    static String host = "http://api.getui.com/apiex.htm";

    public static void main(String[] args) throws Exception {
        // 设置后,根据别名推送,会返回每个cid的推送结果
        System.setProperty(Constants.GEXIN_PUSH_SINGLE_ALIAS_DETAIL, "true");
        IGtPush push = new IGtPush(host, appKey, masterSecret);
        NotificationTemplate template = getNotificationTemplate();
        SingleMessage message = new SingleMessage();
        message.setOffline(true);
        // 离线有效时间,单位为毫秒
        message.setOfflineExpireTime(24 * 3600 * 1000);
        message.setData(template);
        // 可选,1为wifi,0为不限制网络环境。根据手机处于的网络情况,决定是否下发
        message.setPushNetWorkType(0);
        // 厂商通道下发策略
        message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");
        Target target = new Target();
        target.setAppId(appId);
        target.setClientId(CID);
        //target.setAlias(Alias);
        IPushResult ret = null;
        try {
            ret = push.pushMessageToSingle(message, target);
        } catch (RequestException e) {
            e.printStackTrace();
            ret = push.pushMessageToSingle(message, target, e.getRequestId());
        }
        if (ret != null) {
            System.out.println(ret.getResponse().toString());
        } else {
            System.out.println("服务器响应异常");
        }
    }
    public static NotificationTemplate getNotificationTemplate() {
        NotificationTemplate template = new NotificationTemplate();
        // 设置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);
        style.setChannel("通知渠道id");
        style.setChannelName("通知渠道名称");
        style.setChannelLevel(3); //设置通知渠道重要性
        template.setStyle(style);

        template.setTransmissionType(1);  // 透传消息接受方式设置,1:立即启动APP,2:客户端收到消息后需要自行处理
        template.setTransmissionContent("请输入您要透传的内容");

        //template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置
        return template;
    }
}

【toSingle】执行批量单推

功能说明

合并多个单推任务,统一提交,可提升推送效率。

接口说明

IPushResult submit();

调用步骤

STEP1:调用push.getBatch() 获取操作对象
STEP2:调用batch.add() 添加单推任务
STEP3:调用batch.submit() 提交任务

请求参数

推送参数message和target与对单个用户推送消息使用的的参数相同

注:此接口有批量个数有限制,alias不允许超过100个,cid不允许超过5000个。

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
info JsonObject 每个cid推送的结果

返回示例

{
    "result":"ok",
    "info":{
        "1":{
            "result":"ok",
            "taskId":"OSS-xxx",
            "cid":"xxx",
            "status":"successed_online"
        },
        "2":{
            "result":"ok",
            "taskId":"OSS-xxx",
            "cid":"xxx",
            "status":"successed_offline"
        }
    }
}

代码示例

    import java.io.IOException;
    import com.gexin.rp.sdk.base.IBatch;
    import com.gexin.rp.sdk.base.IIGtPush;
    import com.gexin.rp.sdk.base.impl.SingleMessage;
    import com.gexin.rp.sdk.base.impl.Target;
    import com.gexin.rp.sdk.http.IGtPush;
    import com.gexin.rp.sdk.template.LinkTemplate;
    import com.gexin.rp.sdk.template.NotificationTemplate;

    public class MyBatchPushDemo {
        // 详见【概述】-【服务端接入步骤】-【STEP1】说明,获得的应用配置
        private static String appId = "";
        private static String appKey = "";
        private static String masterSecret = "";

        static String CID_A = "";
        static String CID_B = "";

        // 如果需要使用HTTPS,直接修改url即可
        //static String host = "https://api.getui.com/apiex.htm";
        static String host = "http://api.getui.com/apiex.htm";

        public static void main(String[] args) throws IOException {

            IIGtPush push = new IGtPush(host, appKey, masterSecret);
            IBatch batch = push.getBatch();

            try {
                // 构建客户a的通知消息a
                constructClientNotifyMsg(CID_A,"msgA",batch);
                // 构建客户B的点击通知打开网页消息b
                constructClientLinkMsg(CID_B,"msgB",batch);
            } catch (Exception e) {
                e.printStackTrace();
            }
            batch.submit();
        }

        private static void constructClientNotifyMsg(String cid, String msg ,IBatch batch) throws Exception {

            SingleMessage message = new SingleMessage();
            ITemplate template = notificationTemplateDemo();

            //template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置

            message.setData(template);
            message.setOffline(true);
            message.setOfflineExpireTime(360 * 1000);
            // 厂商通道下发策略
            message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");

            // 设置推送目标,填入appid和clientId
            Target target = new Target();
            target.setAppId(appId);
            target.setClientId(cid);
            batch.add(message, target);
        }
        public static NotificationTemplate notificationTemplateDemo() {
            NotificationTemplate template = new NotificationTemplate();
            // 设置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);
            style.setChannel("通知渠道id");
            style.setChannelName("通知渠道名称");
            style.setChannelLevel(3); //设置通知渠道重要性
            template.setStyle(style);

            // 透传消息接受方式设置,1:立即启动APP,2:客户端收到消息后需要自行处理
            template.setTransmissionType(2);
            template.setTransmissionContent("请输入您要透传的内容");

            //template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置
            return template;
        }

        private static void constructClientLinkMsg(String cid, String msg ,IBatch batch) throws Exception {

            SingleMessage message = new SingleMessage();
            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.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置

            message.setData(template);
            message.setOffline(true);
            message.setOfflineExpireTime(360 * 1000);
            // 厂商通道下发策略
            message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");

            // 设置推送目标,填入appid和clientId
            Target target = new Target();
            target.setAppId(appId);
            target.setClientId(cid);
            batch.add(message, target);
        }
    }

【toList】获取taskId

功能说明

toList推送指向指定的用户列表进行推送。此接口用户创建消息公共体,为toList推送前置步骤

操作步骤如下:

STEP1:创建消息公共体,获取taskId。

STEP2:调用【toList】执行推送接口执行下发
说明:taskId等价于contentId

对应接口

String getContentId(ListMessage message);
String getContentId(ListMessage message,String taskGroupName);

限制说明

注:此接口频次限制200万次/天,申请修改请点击右侧“技术咨询”了解详情 。

请求参数

名称 类型 是否必需 默认值 描述
message ListMessage 消息体
taskGroupName string 任务组名
多个消息公共体可以用同一个任务组名,后续可根据任务组名查询推送情况

ListMessage

名称 类型 是否必需 默认值 描述
isOffline boolean false 是否保持离线消息
offlineExpireTime long 1小时 过多久该消息离线失效(单位毫秒) 支持1-72小时*3600000毫秒
pushNetWorkType long 0 推送网络要求
0:联网方式不限;
1:仅wifi;
2:仅移动网络
strategyJson json - 厂商下发策略:控制消息经由个推通道或厂商下发。
示例:{\"default\":4,\"ios\":4,\"st\":4}
字段含义如下:
1: 个推通道优先,在线经个推通道下发,离线经厂商下发(默认);
2: 在离线只经厂商下发;
3: 在离线只经个推通道下发;
4: 优先经厂商下发,失败后经个推通道下发;
JAVA SDK版本要求4.1.1.0以上
data ITemplate 设置推送效果,点击查看详细说明

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
contentId String 就是taskId,任务ID(格式OSL-MMdd_XXXXXX)

返回示例

{
    "result":"ok",
    "contentId":"xxx"
}

【toList】执行批量推

功能说明

上传clientid或别名列表,对列表中所有clientid或别名用户进行消息推送。调用此接口前需调用获取taskId接口设置消息内容。

对应接口

IPushResult pushMessageToList(String contentId, List<Target> targetList);

限制说明

注:单次推送数量限制1000以内,此接口频次限制200万次/天,申请修改请点击右侧“技术咨询”了解详情 。

请求参数

名称 类型 是否必需 默认值 描述
contentId string 就是taskId,任务ID,是获取taskId接口返回值
相同taskId可以多次使用
targetList List<Target> 推送目标列表,单次推送数量限制1000以内

Target

名称 类型 是否必需 默认值 描述
appId String 应用唯一ID
clientId String 客户端身份ID
clientId和alias至少选其一
alias String 用户别名
clientId和alias至少选其一

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
contentId String 就是taskId,任务ID
details JsonObject 环境变量设置gexin_pushList_needDetails为true时返回此数据,不设置或为false不返还此数据。
aliasDetails JsonObject 环境变量设置gexin_pushList_needAliasDetails为true时返回此数据,不设置或为false不返还此数据。

返回示例

{
    "result":"ok",
    "contentId":"",
    "details":{
            "cid1":"successed_online",
            "cid2":"successed_offline",
            "cid3":"successed_ignore"
     },
     "aliasDetails":{
            "cid1":"successed_online",
            "cid2":"successed_offline",
            "cid3":"successed_ignore"
     }
}

代码示例

import java.util.ArrayList;
import java.util.List;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.ListMessage;
import com.gexin.rp.sdk.base.impl.Target;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.NotificationTemplate;
public class PushList {
    // 详见【概述】-【服务端接入步骤】-【STEP1】说明,获得的应用配置
    private static String appId = "";
    private static String appKey = "";
    private static String masterSecret = "";

    static String CID1 = "";
    static String CID2 = "";
    // 别名推送方式
    // static String Alias1 = "";
    // static String Alias2 = "";
    // 如果需要使用HTTPS,直接修改url即可
    // static String host = "https://api.getui.com/apiex.htm";
    static String host = "http://api.getui.com/apiex.htm";
    public static void main(String[] args) throws Exception {
        // 配置返回每个用户返回用户状态,可选
        System.setProperty("gexin_pushList_needDetails", "true");
        // 配置返回每个别名及其对应cid的用户状态,可选
        // System.setProperty("gexin_pushList_needAliasDetails", "true");
        IGtPush push = new IGtPush(host, appKey, masterSecret);
        // 通知透传模板
        NotificationTemplate template = notificationTemplateDemo();
        ListMessage message = new ListMessage();
        message.setData(template);
        // 设置消息离线,并设置离线时间
        message.setOffline(true);
        // 离线有效时间,单位为毫秒
        message.setOfflineExpireTime(24 * 1000 * 3600);
        // 厂商通道下发策略
        message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");

        // 配置推送目标
        List targets = new ArrayList();
        Target target1 = new Target();
        Target target2 = new Target();
        target1.setAppId(appId);
        target1.setClientId(CID1);
        // target1.setAlias(Alias1);
        target2.setAppId(appId);
        target2.setClientId(CID2);
        // target2.setAlias(Alias2);
        targets.add(target1);
        targets.add(target2);
        // taskId用于在推送时去查找对应的message
        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();
        // 设置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);
        style.setChannel("通知渠道id");
        style.setChannelName("通知渠道名称");
        style.setChannelLevel(3); //设置通知渠道重要性
        template.setStyle(style);

        // 透传消息接受方式设置,1:立即启动APP,2:客户端收到消息后需要自行处理
        template.setTransmissionType(2);
        template.setTransmissionContent("请输入您要透传的内容");

        //template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置
        return template;
    }
}

【toApp】执行群推

功能说明

对指定应用的所有(或符合筛选条件的)用户群发推送消息。有定时、定速功能。

对应接口

IPushResult pushMessageToApp(AppMessage message);
IPushResult pushMessageToApp(AppMessage message, String taskGroupName);

限制说明

注:此接口频次限制100次/天,每分钟不能超过5次,定时推送功能需要申请开通才可以使用,申请修改请点击右侧“技术咨询”了解详情 。

  • 使用推送的sdk包版本必须大于等于4.0.1.17。
  • 设定推送的时间格式为yyyyMMddHHmm 例如:201908081900,任务将会在2019年08月08日19点00分推送。
  • 对时间的设定有一定的要求:
    1. 时间格式不正确 提交任务时 将直接返回失败。
    2. 下发时间小于当前时间 提交任务时将直接返回失败。
    3. 下发时间必须是7天内的时间,否则将直接返回失败。

请求参数

名称 类型 是否必需 默认值 描述
message AppMessage 消息体
taskGroupName String 任务组名
多个消息公共体可以用同一个任务组名,后续可根据任务组名查询推送情况

AppMessage

名称 类型 是否必需 默认值 描述
isOffline boolean false 是否保持离线消息
offlineExpireTime long 1小时 过多久该消息离线失效(单位毫秒) 支持1-72小时*3600000毫秒
pushNetWorkType long 0 推送网络要求
0:联网方式不限;
1:仅wifi;
2:仅移动网络
strategyJson json - 厂商下发策略:控制消息经由个推通道或厂商下发。
示例:{\"default\":4,\"ios\":4,\"st\":4}
字段含义如下:
1: 个推通道优先,在线经个推通道下发,离线经厂商下发(默认);
2: 在离线只经厂商下发;
3: 在离线只经个推通道下发;
4: 优先经厂商下发,失败后经个推通道下发;
JAVA SDK版本要求4.1.1.0以上
data ITemplate 设置推送效果,点击查看详细说明
appIdList List<String> appId列表,只有第一个有效
conditions AppConditions 筛选条件交并补功能
speed int 定速推送
例如100,个推控制下发速度在100条/秒左右
pushTime String 定时推送时间,必须是7天内的时间
格式:yyyyMMddHHmm
此功能需要开通VIP,如需开通请点击右侧“技术咨询”了解详情

AppConditions

// AppConditions类的实例方法
AppConditions addCondition(String key, List<String> values, int optType);
名称 类型 是否必需 默认值 描述
key String 查询条件键(phoneType 手机类型,region 省市,tag 用户标签),其他key可开通VIP套餐,通过查询用户画像接口获取
values List 查询条件值列表,其中
手机型号使用如下参数ANDROIDIOS,需要大写;
省市使用编号,点击下载文件region_code.data
optType String 0 条件类型(OptType.or 或, OptType.and 与, OptType.not 非)
  • 需要发送给城市在A,B,C里面,没有设置tagtest标签,手机型号为ANDROID的用户,用条件交并补功能可以实现,city(A|B|C) && !tag(tagtest) && phonetype(ANDROID)

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
contentId String 任务ID

返回示例

{
    "result":"ok",
    "contentId":"xxx"
}

代码示例

import java.util.ArrayList;
import java.util.List;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.base.uitls.AppConditions;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.LinkTemplate;

public class PushtoAPP {    
    // 详见【概述】-【服务端接入步骤】-【STEP1】说明,获得的应用配置
    private static String appId = "";
    private static String appKey = "";
    private static String masterSecret = "";
    // 如果需要使用HTTPS,直接修改url即可
    // static String host = "https://api.getui.com/apiex.htm";
    static String host = "http://api.getui.com/apiex.htm";

    public static void main(String[] args) throws Exception {

        IGtPush push = new IGtPush(host, appKey, masterSecret);

        NotificationTemplate template = getNotificationTemplate();
        AppMessage message = new AppMessage();
        message.setData(template);

        message.setOffline(true);
        // 离线有效时间,单位为毫秒
        message.setOfflineExpireTime(24 * 1000 * 3600);
        // 厂商通道下发策略
        message.setStrategyJson("{\"default\":4,\"ios\":4,\"st\":4}");

        // 推送给App的目标用户需要满足的条件
        AppConditions cdt = new AppConditions();
        List<String> appIdList = new ArrayList<String>();
        appIdList.add(appId);
        message.setAppIdList(appIdList);
        // 手机类型
        List<String> phoneTypeList = new ArrayList<String>();
        phoneTypeList.add("IOS");
        phoneTypeList.add("ANDROID");
        // 省份
        List<String> provinceList = new ArrayList<String>();
        // 参见region_code.data
        provinceList.add("33010000");//杭州市
        provinceList.add("51010000");//成都市
        // 自定义tag
        List<String> tagList = new ArrayList<String>();
        tagList.add("tag001");

        // 查询可推送的用户画像(需要开通VIP套餐)
        //IQueryResult personaTagResult = push.getPersonaTags(APPID);
        //System.out.println(personaTagResult.getResponse());
        // 工作
        List<String> jobs = new ArrayList<String>();
        jobs.add("0102");
        jobs.add("0110");
        conditions.addCondition("job", jobs);   
        // 年龄
        List<String> age = new ArrayList<String>();
        age.add("0000");
        conditions.addCondition("age", age);

        cdt.addCondition(AppConditions.PHONE_TYPE, phoneTypeList, AppConditions.OptType.or);
        cdt.addCondition(AppConditions.REGION, provinceList, AppConditions.OptType.or);
        cdt.addCondition(AppConditions.TAG,tagList, AppConditions.OptType.and);
        cdt.addCondition("job", jobs, AppConditions.OptType.not);
        cdt.addCondition("age", age);
        message.setConditions(cdt);

        IPushResult ret = push.pushMessageToApp(message,"任务别名_toApp");
        System.out.println(ret.getResponse().toString());
    }

    public static NotificationTemplate getNotificationTemplate() {
        NotificationTemplate template = new NotificationTemplate();
        // 设置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);
        style.setChannel("通知渠道id");
        style.setChannelName("通知渠道名称");
        style.setChannelLevel(3); //设置通知渠道重要性
        template.setStyle(style);

        template.setTransmissionType(1);  // 透传消息设置,收到消息是否立即启动应用: 1为立即启动,2则广播等待客户端自启动
        template.setTransmissionContent("请输入您要透传的内容");

        //template.setAPNInfo(getAPNPayload()); //详见【推送模板说明】iOS通知样式设置
        return template;
    }

}

【任务】停止任务

功能说明

对正处于推送状态,或者未接收的消息停止下发(只支持批量推和群推任务)

对应接口

boolean stop(String contentId)

返回参数

名称 类型 描述
- boolean true:成功;
false:失败

请求参数

名称 类型 是否必需 默认值 描述
contentId string 就是taskId,任务ID(格式OSL-MMdd_XXXXXX或OSA-MMdd_XXXXXX)

【任务】查询定时任务

功能说明

此接口可根据taskID查询所有定时任务

对应接口

IPushResult getScheduleTask(String taskId, String appId);

请求参数

名称 类型 是否必需 默认值 描述
taskId String 任务ID
appId String 应用唯一ID

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
taskId String 任务ID
taskDetail JsonObject 任务详情

taskDetail

名称 类型 描述
desc String 查询结果描述
status String 查询结果code码
pushContent String 推送内容
pushTime String 推送任务设置的定时时间
creatTime String 创建任务时间
sendResult String 任务状态,有如下值
HAS_DELETE:定时任务已经被删除
SEND_SUCCESS:定时任务发送成功
DO_NOT_SEND:定时任务还没有发送
SEND_FAILED:定时任务发送失败

返回示例

{
    "result":"Success",
    "taskId":"xxx",
      "taskDetail": {
          "desc":"ok",
          "status":"0",
          "pushContent":"xxx",
          "pushTime":"20190814180000",
          "creatTime":"Wed Aug 14 14:14:22 CST 2019",
          "sendResult":"DO_NOT_SEND"
    }
}

【任务】删除定时任务

功能说明

用来删除还未下发的任务,删除后定时任务不再出发

对应接口

IPushResult delScheduleTask(String taskId, String appId)

限制说明

距离下发还有一分钟的任务,将无法删除,后续可以调用停止任务接口。

请求参数

名称 类型 是否必需 默认值 描述
taskId String 任务ID
appId String 应用唯一ID

返回参数

名称 类型 描述
result String 请求结果,其他返回结果详见错误返回值
taskDetail String 结果描述

3.6 返回示例

{
    "result":"Success",
    "taskDetail":""
}
开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询