SDK 说明
本 SDK 提供移动推送服务端接口的 Java 封装,与移动推送后台通信。使用时引用 XingeApp 包即可,本 SDK 封装的主要是 V3 推送相关接口。
集成方式
Maven 依赖引用方式:
<dependency><groupId>io.github.tpnsPush</groupId><artifactId>xinge</artifactId><version>1.2.4.21</version></dependency>
注意
groupId从1.2.4.11版本起有变更。
使用方法
XingeApp 接口说明
该类提供与移动推送后台交互的接口。由 XingeApp.Builder 进行构建,对应参数如下:
示例
XingeApp xingeApp = new XingeApp.Builder().appId(appid).secretKey(secretKey).domainUrl(“https://api.tpns.tencent.com/”).build();PushAppRequest pushAppRequest = new PushAppRequest();//完善PushAppRequest 消息...JSONObject ret = xingeApp.pushApp(pushAppRequest );
pushAppRequest 接口说明
示例
说明
XingeAppSimple
中包含推送、绑定、解绑等接口的示例。Android 单设备推送示例
// Android单设备token推送public JSONObject pushTokenAndroid() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.token);// 消息类型:通知栏或透传消息pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("title");// 推送内容message.setContent("content");pushAppRequest.setMessage(message);MessageAndroid messageAndroid = new MessageAndroid();message.setAndroid(messageAndroid);ArrayList<String> tokenList = new ArrayList();tokenList.add("04cac74a714f61bf089********63d880993");// 设置token列表pushAppRequest.setToken_list(tokenList);return this.xingeApp.pushApp(pushAppRequest);}
Android 单账号推送示例
// Android单账号推送public JSONObject pushAccountAndroid() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.account);// 消息类型:通知栏或透传消息pushAppRequest.setMessage_type(MessageType.notify);// 选择推送的账号类型pushAppRequest.setAccount_push_type(1);Message message = new Message();// 推送标题message.setTitle("title");// 推送内容message.setContent("content");MessageAndroid messageAndroid = new MessageAndroid();message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);ArrayList<String> accountList = new ArrayList();// 添加绑定账号accountList.add("123");// 设置账号列表pushAppRequest.setAccount_list(accountList);return this.xingeApp.pushApp(pushAppRequest);}
Android 标签推送示例
// Android标签推送public JSONObject pushTagAndroid() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.tag);// 消息类型:通知栏或透传消息pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("title");// 推送内容message.setContent("content");MessageAndroid messageAndroid = new MessageAndroid();message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);ArrayList<String> tagList = new ArrayList();// 添加绑定标签tagList.add("tag");TagListObject tagListObject = new TagListObject();// 设置标签tagListObject.setTags(tagList);// 标签对应的运算符tagListObject.setOp(OpType.OR);// 设置标签列表pushAppRequest.setTag_list(tagListObject);return this.xingeApp.pushApp(pushAppRequest);}
Android 全部设备推送示例
// Android全量推送public JSONObject pushAllAndroid() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.all);pushAppRequest.setPlatform(Platform.android);// 消息类型(通知栏/透传消息)pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("title");// 推送内容message.setContent("content");MessageAndroid messageAndroid = new MessageAndroid();message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);return this.xingeApp.pushApp(pushAppRequest);}
Harmony 单设备推送示例
// Harmony单设备token推送public JSONObject pushTokenHarmony(String title, String content, String token){PushAppRequest pushAppRequest = new PushAppRequest();pushAppRequest.setAudience_type(AudienceType.token);pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();message.setTitle(title);message.setContent(content);// 设置鸿蒙具体消息体和点击事件HarmonyClickAction harmonyClickAction = new HarmonyClickAction();HarmonyMessage messageHarmony = new HarmonyMessage();messageHarmony.setClick_action(harmonyClickAction);// 设置鸿蒙字段harmony_messageMessageAndroid messageAndroid = new MessageAndroid();messageAndroid.setHarmony_message(messageHarmony);message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);ArrayList<String> tokenList = new ArrayList<String>();tokenList.add(token);pushAppRequest.setToken_list(tokenList);
Harmony 单账号推送示例
// Harmony单账号推送public JSONObject pushAccountHarmony(String title, String content, String account){PushAppRequest pushAppRequest = new PushAppRequest();pushAppRequest.setAudience_type(AudienceType.account);pushAppRequest.setMessage_type(MessageType.notify);pushAppRequest.setAccount_push_type(1);Message message = new Message();message.setTitle(title);message.setContent(content);// 设置鸿蒙具体消息体和点击事件HarmonyClickAction harmonyClickAction = new HarmonyClickAction();HarmonyMessage messageHarmony = new HarmonyMessage();messageHarmony.setClick_action(harmonyClickAction);// 设置鸿蒙字段harmony_messageMessageAndroid messageAndroid = new MessageAndroid();messageAndroid.setHarmony_message(messageHarmony);message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);ArrayList<String> accountList = new ArrayList<String>();accountList.add(account);pushAppRequest.setAccount_list(accountList);return this.xingeApp.pushApp(pushAppRequest);}
Harmony 标签推送示例
// Harmony标签推送public JSONObject pushTagHarmony(String title,String content,String tag){PushAppRequest pushAppRequest = new PushAppRequest();pushAppRequest.setAudience_type(AudienceType.tag);pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();message.setTitle(title);message.setContent(content);// 设置鸿蒙具体消息体和点击事件HarmonyClickAction harmonyClickAction = new HarmonyClickAction();HarmonyMessage messageHarmony = new HarmonyMessage();messageHarmony.setClick_action(harmonyClickAction);// 设置鸿蒙字段harmony_messageMessageAndroid messageAndroid = new MessageAndroid();messageAndroid.setHarmony_message(messageHarmony);message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);ArrayList<String> tagList = new ArrayList<String>();tagList.add(tag);TagListObject tagListObject = new TagListObject();tagListObject.setTags(tagList);tagListObject.setOp(OpType.OR);pushAppRequest.setTag_list(tagListObject);return this.xingeApp.pushApp(pushAppRequest);}
Harmony 全部设备推送示例
// Harmony全部设备推送public JSONObject pushAllHarmony(String title,String content){PushAppRequest pushAppRequest = new PushAppRequest();pushAppRequest.setAudience_type(AudienceType.all);pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();message.setTitle(title);message.setContent(content);// 设置鸿蒙具体消息体和点击事件HarmonyClickAction harmonyClickAction = new HarmonyClickAction();HarmonyMessage messageHarmony = new HarmonyMessage();messageHarmony.setClick_action(harmonyClickAction);// 设置鸿蒙字段harmony_messageMessageAndroid messageAndroid = new MessageAndroid();messageAndroid.setHarmony_message(messageHarmony);message.setAndroid(messageAndroid);pushAppRequest.setMessage(message);return this.xingeApp.pushApp(pushAppRequest);}
iOS 单设备推送示例
// iOS单设备token推送public JSONObject pushTokenIos(){PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.token);// 指定推送环境pushAppRequest.setEnvironment(Environment.valueOf("dev"));// 消息类型(通知栏/透传消息)pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("title");// 推送内容message.setContent("content");MessageIOS messageIOS = new MessageIOS();Alert alert = new Alert();Aps aps = new Aps();// 通知的内容属性aps.setAlert(alert);// 通知属性messageIOS.setAps(aps);message.setIos(messageIOS);pushAppRequest.setMessage(message);ArrayList<String> tokenList = new ArrayList<String>();// 添加tokentokenList.add("0250df875c93c55********536b54fc1c49f");// 设置token列表pushAppRequest.setToken_list(tokenList);return this.xingeApp.pushApp(pushAppRequest);}
iOS 单账号推送示例
// iOS单账号推送public JSONObject pushAccountIos() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.account);// 指定推送环境pushAppRequest.setEnvironment(Environment.valueOf("dev"));// 消息类型(通知栏/透传消息)pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("账号推送");// 推送内容message.setContent("content");MessageIOS messageIOS = new MessageIOS();Alert alert = new Alert();Aps aps = new Aps();// 通知的内容属性aps.setAlert(alert);// 通知属性messageIOS.setAps(aps);message.setIos(messageIOS);pushAppRequest.setMessage(message);ArrayList<String> accountList = new ArrayList();// 添加账号accountList.add("1122");// 设置账号列表pushAppRequest.setAccount_list(accountList);return this.xingeApp.pushApp(pushAppRequest);}
iOS 标签推送示例
// iOS标签推送public JSONObject pushTagIos() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.tag);// 指定推送环境pushAppRequest.setEnvironment(Environment.valueOf("dev"));// 消息类型(通知栏/透传消息)pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("标签推送");// 推送内容message.setContent("content");MessageIOS messageIOS = new MessageIOS();Alert alert = new Alert();Aps aps = new Aps();// 通知的内容属性aps.setAlert(alert);// 通知属性messageIOS.setAps(aps);message.setIos(messageIOS);pushAppRequest.setMessage(message);ArrayList<String> tagList = new ArrayList();// 添加标签tagList.add("1122");TagListObject tagListObject = new TagListObject();tagListObject.setTags(tagList);tagListObject.setOp(OpType.OR);pushAppRequest.setMessage(message);// 标签列表pushAppRequest.setTag_list(tagListObject);return this.xingeApp.pushApp(pushAppRequest);}
iOS 全部设备推送示例
// iOS全量推送public JSONObject pushAllIos() {PushAppRequest pushAppRequest = new PushAppRequest();// 选择推送目标类型pushAppRequest.setAudience_type(AudienceType.all);// 指定推送环境pushAppRequest.setEnvironment(Environment.valueOf("dev"));// 消息类型(通知栏/透传消息)pushAppRequest.setMessage_type(MessageType.notify);Message message = new Message();// 推送标题message.setTitle("全量推送");// 推送内容message.setContent("content");MessageIOS messageIOS = new MessageIOS();Alert alert = new Alert();Aps aps = new Aps();// 通知的内容属性aps.setAlert(alert);// 通知属性messageIOS.setAps(aps);message.setIos(messageIOS);pushAppRequest.setMessage(message);return this.xingeApp.pushApp(pushAppRequest);}
推送应答示例
{"result":"{}","environment":"","push_id":"1328245138690125824","err_msg":"NO_ERROR","err_msg_zh":"","ret_code":0,"seq":0}
服务端返回码
常见问题
接口返回错误码10101或403是什么原因,如何解决?
接口返回错误{"err_msg":"CallApiError,HttpStatus Code:422","ret_code":10101},如何解决?
Code:422 表示的有请求参数有误,请确认下参数中的 PushMessageIos.message.ios.custom 字段传的是否为 string 类型。
接口返回错误码1008007,参数校验失败如何解决?
是否有其它开发语言的 SDK ?
推送接口返回Peer certificate cannot be authenticated with given CA certificates
,如何解决?
此问题原因是ca证书过期,进入证书目录,通过 openssl 命令进行查看到期时间:
# openssl x509 -in signed.crt -noout -dates
signed.crt
修改为您自己服务端上的证书名称。