push-对外接口文档.md
4.07 KB
push 对外接口文档
1、生成推送任务接口
适用场景:
- 针对一批确定的用户,比如订阅了某个秒杀活动的20W用户,给他们推
秒杀活动即将开始
的消息。
对接方式:
- 直接往rabbitMQ写一条消息进MQ, 所有
push
节点会监听MQ, 接收到推送任务之后,进行推送。- topic类型 :
yoho_task_push
- topic类型 :
消息格式体
参数名称 | 参数类型 | 可否为空 | 参数解释 | 默认值 | 备注 |
---|---|---|---|---|---|
androidTitle | String | 是 | 安卓推送标题 | null | 无 |
androidContent | String | 是 | 安卓推送内容 | null | 安卓的推送分为title和content两部分 |
iosAlert | String | 是 | ios推送内容 | null | ios的推送只有alert |
appendParams | String | 否 | APP跳转链接 | null | 必须为JSON格式 的字符串,给APP跳转使用 |
sendTime | long | 否 | 发送时间 | null | 可做定时用,此值小于PUSH服务器的时间即会发送 |
sceneType | String | 否 | 此次推送的场景 | null | 如品牌上新 为ADDED_BRANDS |
sceneKey | String | 否 | 此次推送的场景key | null | 如品牌上新 时此值为brand_id |
uids | List | 否 | 推送给哪些用户 | null | 大小不要超过10000,量大时自行分片 |
iosVersions | List | 是 | ios版本号 | null | 无 |
androidVersions | List | 是 | 安卓的版本号 | null | 无 |
- 参数申明
- androidTitle和androidContent同时为空,则不会生成安卓的推送任务。
- iosAlert为空,则不会生成ios的推送任务。
- sceneType 和 sceneKey 很重要,大数据统计时会用到,请合理命名。
- uids大小不要超过1W,数据量大时,请自行分片。
生成MQ消息实体的demo
- PushTaskMqMessage对象
public class PushTaskMqMessage{
private String androidTitle;// 安卓推送标题
private String androidContent;// 安卓推送内容
private String iosAlert;// IOS推送内容
private String appendParams = "{\"type\":\"event\",\"ad_action\":\"go.brand\",\"ad_option\":\"brand=4\"}";// 推送跳转的链接,默认品牌首页
private Long sendTime;// 推送时间
private String sceneType;// sceneType 的类型(如上新推送、改价推送、到时候有统一的配置,方便)
private String sceneKey;// 推送场景的key(如上新推送的brandId)
private List<String> uids;// 要给哪些用户推送
private List<String> iosVersions;// 推送的版本号
private List<String> androidVersions;// 推送的版本号
}
- 生成写进MQ的消息字符串
public static void main(String[] args) {
JSONObject pushMessage = new JSONObject();
PushTaskMqMessage pushTaskMqMessage = new PushTaskMqMessage();
//设置安卓推送标题和内容,同时为空则不推送安卓
pushTaskMqMessage.setAndroidTitle("秒杀活动即将开始");
pushTaskMqMessage.setAndroidContent("adidas秒杀活动计即将开始,赶紧戳进来>>");
//设置IOS推送内容,为空则不推送IOS
pushTaskMqMessage.setIosAlert("您订阅的adidas秒杀活动计即将开始,赶紧戳进来>>");
//APP跳转链接,有参考文档,一定要是个完整的JSON字符串
pushTaskMqMessage.setAppendParams("{\"type\":\"event\",\"ad_action\":\"go.url\",\"ad_option\":\"link=http://feature.yoho.cn/1019/1019NEWGIRL/index.html?app_version=4.9.2.1609120001\",\"isLogin\":\"Y\",\"act_id\":\"841\"}");
//设置推送场景和推送key
pushTaskMqMessage.setSceneType("SpecilSkill");
pushTaskMqMessage.setSceneKey("841");
//设置推送的uids,一批不要超过1W,量大自行分片
pushTaskMqMessage.setUids(Arrays.asList("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"));
//设置APP版本,不设则所有的版本
pushTaskMqMessage.setIosVersions(null);
pushTaskMqMessage.setAndroidVersions(null);
//生成丢进mq的字符串
pushMessage.put("data", JSON.toJSON(pushTaskMqMessage));
String addToMqString = pushMessage.toJSONString();
System.out.println(addToMqString);
//TODO ADD pushMessage json String to RabbitMq,topic is yoho_task_push
}