Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

23 Commits

Repository files navigation

魅族集成推送服务端JAVA_SDK

JavaPushSdk发布说明(请使用最新版本)

更新日志

[2019-01-14]V1.1.0.20190114

  • update log config

[2018-06-12]V1.0.0.20180612

  • 增加取消应用全网推送

[2018-04-18]V1.0.0.20180418

  • 增加应用全网推送

[2017-12-06]V1.0.0.20171206

  • 1.0.0标准版

类型定义

推送服务(IFlymeUpsPush)

调用该类实例的方法来推送消息, 构造函数说明如下:

参数名称类型必填默认描述
appSecretStringnull注册应用appSecret
useSSLBooleanfalse是否使用https接口调用:true 使用https连接,false使用http连接

通知栏消息体(Message)

推送消息实体(抽象类)

子类说明
VarnishedMessage通知栏消息体
UnVarnishedMessage透传消息体

通知栏消息(VarnishedMessage)

参数名称类型必填默认描述
appIdLongnull注册应用appId
titleStringnull推送标题, 【字数限制1~32】
contentStringnull推送内容, 【字数限制1~100】
clickTypeint0点击动作 (0,"打开应用"),(1,"打开应用页面"),(2,"打开URI页面")【非必填,默认值为0】
urlStringnullURI页面地址, 【clickType为打开URI页面时,必填, 长度限制1000byte】
parametersJSONObjectnull透传参数 【JSON格式,非必填】
activityStringnull应用页面地址, 【clickType为打开应用页面时,格式 pkg.activity eg: com.meizu.upspushdemo.TestActivity 必填】
isOffLineBooleantrue是否进离线消息, (false 否 true 是) 【非必填,默认值为true】
validTimeint24有效时长 (172小时内的正整数), 【isOffLine值为true时,必填,值的范围172】
pushTimeTypeint0定时推送 (0, "即时"),(1, "定时"), 【只对全部用户推送生效】
startTimeDatenull任务定时开始时间,【非必填,pushTimeType为True必填】只对全部用户推送生效
isFixSpeedBooleanfalse是否定速推送, 【非必填,默认值为False】
fixSpeedRateLong0定速速率,【isFixSpeed为true时,必填】
isSuspendBooleantrue是否通知栏悬浮窗显示 (true显示,false不显示) 【非必填,默认True】
isClearNoticeBarBooleantrue是否可清除通知栏 (true可以,false不可以) ,【非必填,默认true】
vibrateBooleantrue震动 (false关闭 true 开启) , 【非必填,默认true】
lightsBooleantrue闪光 (false关闭 true 开启) , 【非必填,默认true】
soundBooleantrue声音 (false关闭 true 开启) , 【非必填,默认true】

透传消息(UnVarnishedMessage)

参数名称类型必填默认描述
appIdLongnull注册应用appId
titleStringnull推送标题,任务推送建议填写,方便数据查询,【字数限制1~32】
contentStringnull推送内容,【必填,字数限制3800byte以内】
isOffLineBooleantrue是否进离线消息,【非必填,默认为true】
validTimeint24有效时长 (1~72小时内的正整数),【isOffLine值为true时,必填,值的范围1--72】
pushTimeTypeint0定时推送 (0, "即时"),(1, "定时"), 【只对全部用户推送生效】
startTimeDatenull任务定时开始时间, 【pushTimeType为1必填】只对全部用户推送生效
isFixSpeedBooleanfalse是否定速推送,【非必填,默认值为false】
fixSpeedRateLong0定速速率 【isFixSpeed为true时,必填】

接口返回值(ResultPack)

方法名称类型描述
code()String接口响应码
Comment()String接口响应描述
value()T接口响应内容
errorCode()Enum接口响应异常枚举 详见ErrorCode

消息推送结果(PushResult)

方法名称类型描述
getMsgId()String推送消息ID,用于推送流程明细排查
getRespTarget()Map推送目标结果状态(KEY:推送响应码 VALUE:响应码对应的目标用户 )
logsMapapp渠道推送日志,用于问题排查(KEY:渠道 value:log)

接口响应码定义(ErrorCode)

名称CodeCommen
UNKNOWN_ERROR-1未知错误
SUCCESS200成功
SYSTEM_ERROR1001系统错误
SYSTEM_BUSY1003服务器忙
PARAMETER_ERROR1005参数错误,请参考API文档
INVALID_SIGN1006签名认证失败
INVALID_APPLICATION_ID110000appId不合法
INVALID_APPLICATION_KEY110001appKey不合法
UNSUBSCRIBE_PUSHID110002pushId未注册
INVALID_PUSHID110003pushId非法
PARAM_BLANK110004参数不能为空
APP_REQUEST_EXCEED_LIMIT110010应用请求频率过快
APP_PUSH_TIME_EXCEED_LIMIT110051超过该应用的次数限制
APP_REQUEST_PUSH_LIMIT110019超过该应用每天推送次数限制
INVALID_APPLICATION_PACKAGENAME110031packageName不合法
INVALID_TASK_ID110032非法的taskId
INVALID_APPLICATION_SECRET110033非法的appSecret
DIRECT_OUT_LIMIT110053透传超过限制

推送响应码定义(PushResponseCode)

名称CodeCommen
RSP_NO_AUT201没有权限,服务器主动拒绝
RSP_DB_ERROR501推送消息失败(db_error)
RSP_INTERNAL_ERROR513推送消息失败
RSP_SPEED_LIMIT518推送超过配置的速率
RSP_OVERFLOW519推送消息失败服务过载
RSP_UNSUBSCRIBE_PUSHID110002pushId未订阅(包括推送开关关闭的设备)
RSP_INVALID_PUSHID110003pushId非法
RSP_UNSUBSCRIBE_ALIAS110005别名未订阅(包括推送开关关闭的设备)

推送类型(PushType)

枚举类型描述
STATUSBAREnum通知栏消息类型
DIRECTEnum透传消息类型

渠道类型(CP)

枚举类型描述
MEIZUEnum魅族
XIAOMIEnum小米
HUAWEIEnum华为

任务推送统计(天)(DailyPushStatics)

名称类型描述
dateDate日期
pushedNoLong推送数
acceptNoLong接收数
clickNoLong点击数

接口说明

非任务推送

描述

向指定的pushId推送消息

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

应用场景

  • 场景1:查找手机业务需要远程定位位置,可发送消息指令到对应的设备
  • 场景2:社区用户回帖消息提醒,用户对发表的帖子有最新回复时,消息提醒发帖者

pushId通知栏消息推送(pushMessage)

  • 接口说明
接口说明
ResultPack<PushResult> pushMessage(VarnishedMessage message, List<String> pushIds)推送通知栏消息
ResultPack<PushResult> pushMessage(VarnishedMessage message, List<String> pushIds, int retries)推送通知栏消息
  • 参数说明
参数名称类型必需默认描述
messageVarnishedMessagenull推送消息
pushIdsListnull推送目标,一批最多不能超过1000个
retriesint0超时or异常重试次数
  • 返回值
PushResult
msgId; 推送消息ID,用于推送流程明细排查
respTarget; 推送目标结果状态(key:推送响应码 value:响应码对应的目标用户 )
注:只返回不合法、超速以及推送失败的目标用户,业务一般对超速的pushId处理。
  • 示例
/** * 通知栏消息推送(pushMessage) * @throws Exception */@TestpublicvoidtestVarnishedMessagePush() throwsException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
//组装消息VarnishedMessagemessage = newVarnishedMessage.Builder().appId(appId)
.title("Java SDK 推送标题").content("消息内容")
.build();
//目标用户List<String> pushIds = newArrayList<String>();
pushIds.add("pushId_1");
pushIds.add("pushId_2");
// 1 调用推送服务ResultPack<PushResult> result = push.pushMessage(message, pushIds);
if (result.isSucceed()) {
// 2 调用推送服务成功 (其中map为设备的具体推送结果,一般业务针对超速的code类型做处理)PushResultpushResult = result.value();
StringmsgId = pushResult.getMsgId();//推送消息ID,用于推送流程明细排查Map<String, List<String>> targetResultMap = pushResult.getRespTarget();//推送结果,全部推送成功,则map为emptySystem.out.println("push result:" + pushResult);
if (targetResultMap != null && !targetResultMap.isEmpty()) {
System.err.println("push fail token:" + targetResultMap);
}
} else {
// 调用推送接口服务异常 eg: appId、appKey非法、推送消息非法.....// result.code(); //服务异常码// result.comment();//服务异常描述System.out.println(String.format("pushMessage error code:%s comment:%s", result.code(), result.comment()));
}
}

pushId透传消息推送(pushMessage)

  • 接口说明
接口说明
ResultPack<PushResult> pushMessage(UnVarnishedMessage message, List<String> pushIds)推送透传消息
ResultPack<PushResult> pushMessage(UnVarnishedMessage message, List<String> pushIds, int retries)推送透传消息
  • 参数说明
参数名称类型必需默认描述
messageUnVarnishedMessagenull推送消息
pushIdsListnull推送目标,一批最多不能超过1000个
retriesint0超时or异常重试次数
  • 返回值
PushResult
msgId; 推送消息ID,用于推送流程明细排查
respTarget; 推送目标结果状态(key:推送响应码 value:响应码对应的目标用户 )
注:只返回不合法、超速以及推送失败的目标用户,业务一般对超速的pushId处理。
  • 示例
/** * 透传消息推送(pushMessage) * @throws Exception */@TestpublicvoidtestUnVarnishedMessagePush() throwsException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
//组装透传消息UnVarnishedMessagemessage = newUnVarnishedMessage.Builder()
.appId(appId)
.title("Java SDK 透传推送标题")
.content("Java Sdk透传推送内容")
.build();
//目标用户List<String> pushIds = newArrayList<String>();
pushIds.add("pushId_1");
pushIds.add("pushId_2");
// 1 调用推送服务ResultPack<PushResult> result = push.pushMessage(message, pushIds);
if (result.isSucceed()) {
// 2 调用推送服务成功 (其中map为设备的具体推送结果,一般业务针对超速的code类型做处理)PushResultpushResult = result.value();
StringmsgId = pushResult.getMsgId();//推送消息ID,用于推送流程明细排查Map<String, List<String>> targetResultMap = pushResult.getRespTarget();//推送结果,全部推送成功,则map为emptySystem.out.println("push result:" + pushResult);
if (targetResultMap != null && !targetResultMap.isEmpty()) {
System.err.println("push fail token:" + targetResultMap);
}
} else {
// 调用推送接口服务异常 eg: appId、appKey非法、推送消息非法.....// result.code(); //服务异常码// result.comment();//服务异常描述System.out.println(String.format("pushMessage error code:%s comment:%s", result.code(), result.comment()));
}
}

别名通知栏消息推送(pushMessageByAlias)

  • 接口说明
接口说明
ResultPack<PushResult> pushMessageByAlias(VarnishedMessage message, List<String> alias)推送通知栏消息
ResultPack<PushResult> pushMessageByAlias(VarnishedMessage message, List<String> alias, int retries)推送通知栏消息
  • 参数说明
参数名称类型必需默认描述
messageVarnishedMessagenull推送消息
aliasListnull推送目标,一批最多不能超过1000个
retriesint0超时or异常重试次数
  • 返回值
PushResult
msgId; 推送消息ID,用于推送流程明细排查
respTarget; 推送目标结果状态(key:推送响应码 value:响应码对应的目标用户 )
注:只返回不合法、超速以及推送失败的目标用户
  • 示例
/** * 别名通知栏消息推送(pushMessage) * * @throws Exception */@TestpublicvoidtestVarnishedMessagePushByAlias() throwsException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
//组装消息VarnishedMessagemessage = newVarnishedMessage.Builder().appId(appId)
.title("Java SDK 推送标题").content("Java SDK 推送内容")
.build();
//目标用户List<String> alias = newArrayList<String>();
alias.add("alias1");
alias.add("alias2");
// 1 调用推送服务ResultPack<PushResult> result = push.pushMessageByAlias(message, alias);
// 2 处理推送结果if (result.isSucceed()) {
// 2 调用推送服务成功 (其中map为设备的具体推送结果,一般业务针对超速的code类型做处理)PushResultpushResult = result.value();
StringmsgId = pushResult.getMsgId();//推送消息ID,用于推送流程明细排查Map<String, List<String>> targetResultMap = pushResult.getRespTarget();//推送结果,全部推送成功,则map为emptySystem.out.println("push result:" + pushResult);
if (targetResultMap != null && !targetResultMap.isEmpty()) {
System.err.println("push fail token:" + targetResultMap);
}
} else {
// 调用推送接口服务异常 eg: appId、appKey非法、推送消息非法.....// result.code(); //服务异常码// result.comment();//服务异常描述System.out.println(String.format("pushMessage error code:%s comment:%s", result.code(), result.comment()));
}
}

别名透传消息推送(pushMessageByAlias)

  • 接口说明
接口说明
ResultPack<PushResult> pushMessageByAlias(UnVarnishedMessage message, List<String> alias)推送透传消息
ResultPack<PushResult> pushMessageByAlias(UnVarnishedMessage message, List<String> alias, int retries)推送透传消息
  • 参数说明
参数名称类型必需默认描述
messageUnVarnishedMessagenull推送消息
aliasListnull推送目标,一批最多不能超过1000个
retriesint0超时or异常重试次数
  • 返回值
PushResult
msgId; 推送消息ID,用于推送流程明细排查
respTarget; 推送目标结果状态(key:推送响应码 value:响应码对应的目标用户 ) 注:只返回不合法、超速以及推送失败的目标用户
  • 示例
/** * 别名透传推送 * * @throws Exception */@TestpublicvoidtestUnVarnishedMessagePushByALias() throwsException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
//组装透传消息UnVarnishedMessagemessage = newUnVarnishedMessage.Builder()
.appId(appId)
.title("Java SDK 透传推送标题")
.content("Java Sdk透传推送内容")
.build();
//目标用户List<String> alias = newArrayList<String>();
alias.add("alias");
alias.add("alias2");
// 1 调用推送服务ResultPack<PushResult> result = push.pushMessageByAlias(message, alias);
if (result.isSucceed()) {
// 2 调用推送服务成功 (其中map为设备的具体推送结果,一般业务针对超速的code类型做处理)PushResultpushResult = result.value();
StringmsgId = pushResult.getMsgId();//推送消息ID,用于推送流程明细排查Map<String, List<String>> targetResultMap = pushResult.getRespTarget();//推送结果,全部推送成功,则map为emptySystem.out.println("push result:" + pushResult);
if (targetResultMap != null && !targetResultMap.isEmpty()) {
System.err.println("push fail token:" + targetResultMap);
}
} else {
// 调用推送接口服务异常 eg: appId、appKey非法、推送消息非法.....// result.code(); //服务异常码// result.comment();//服务异常描述System.out.println(String.format("pushMessage error code:%s comment:%s", result.code(), result.comment()));
}
}

应用全网推送(pushToApp)

  • 接口说明
接口说明
ResultPack<Long> pushToApp(PushType pushType, Message message)应用全网推送
  • 参数说明
参数名称类型必需默认描述
messageUnVarnishedMessagenull推送消息
  • 返回值
Long 任务ID
  • 示例
/** * 应用全网推送 * @throws IOException  */@TestpublicvoidtestPushToApp() throwsIOException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
JSONObjectparam = newJSONObject();
param.put("key", "v1");
param.put("k2", "v2");
param.put("k3", "v3");
//组装消息VarnishedMessagemessage = newVarnishedMessage.Builder().appId(appId)
.title("Java SDK 推送标题").content("消息内容")
.build();
// 1 调用推送服务ResultPack<Long> result = push.pushToApp(PushType.STATUSBAR, message);
System.out.println(result);
}

取消推送任务(cancelTaskPush)

  • 接口说明
接口说明
ResultPack<Boolean> cancelTaskPush(PushType pushType, long appId, long taskId)只针对全部用户推送且推送状态为待推送或者推送中的任务取消
  • 参数说明
参数名称类型必需默认描述
pushTypePushTypenull消息类型
appIdLongnull应用ID
taskIdLongnull任务ID
  • 返回值
Boolean true:成功 false:失败
  • 示例
/** * 取消推送任务(cancelTaskPush) 只针对全网推送生效 * * @throws IOException */@TestpublicvoidtestCancelTaskPush() throwsIOException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
longtaskId = 60;
ResultPack<Boolean> resultPack = push.cancelTaskPush(PushType.STATUSBAR, appId, taskId);
System.out.println(resultPack);
}

获取应用推送统计(dailyPushStatics)

  • 接口说明
接口说明
public ResultPack<List<DailyPushStatics>> dailyPushStatics(long appId, Date startTime, Date endTime)获取应用推送统计
  • 参数说明
参数名称类型必需默认描述
appIdLongnull应用ID
startTimeDatenull开始日期
endTimeDatenull结束日期
  • 返回值
List<DailyPushStatics>
  • 示例
/** * 获取任务统计结果 * * @throws IOException */@TestpublicvoidtestDailyPushStatics() throwsIOException {
//推送对象IFlymeUpsPushpush = newIFlymeUpsPush(APP_SECRET_KEY);
DatestartTime = DateUtils.str2Date("2017-06-03", "yyyy-MM-dd");
DateendTime = DateUtils.str2Date("2017-06-10", "yyyy-MM-dd");
ResultPack<List<DailyPushStatics>> resultPack = push.dailyPushStatics(appId, startTime, endTime);
System.out.println(resultPack);
}

About

ups java push sdk

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages