现今智能终端App越来越多,各个App推送的信息量急速扩张,如何让本人推送的信息精准抓住用户的眼帘,在市场竞争中占据洼地?其中一个答案就是——主题订阅音讯推送。
主题订阅音讯推送能够依据用户习惯或让用户自定义感兴趣主题,利用再依据须要撰写主题音讯,推送服务负责将音讯牢靠地传送至正确的设施,从而实现精准推送。
例如,某个天气预报利用的用户可抉择退出“X市天气”主题,并接管对于本地天气的告诉。
华为主题订阅音讯推送服务具备稳固、及时、高效的特点,多种推送款式、主动推送告诉、Deep linking可能助力利用精准触达用户,无效晋升用户活跃度和粘度。
接下来,咱们具体解析如何集成华为主题订阅音讯推送服务。
一、整体开发流程
Step1:利用App主题订阅;
Step2:向订阅主题的用户群发送音讯;
Step3:验证主题订阅音讯胜利送达。
服务端主题订阅推送音讯交互流程图
主题订阅有两种实现形式:App客户端主题订阅和服务端主题订阅。本文将别离具体介绍这两种订阅形式的实现步骤及代码。
二、集成关键步骤阐明和代码实现
(一)客户端主题订阅
客户端主题订阅代码实现:
public void subtopic(View view) {
String SUBTAG = "subtopic";
String topic = "weather";
try {
// 主题订阅
HmsMessaging.getInstance(PushClient.this).subscribe(topic).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> task) {
if (task.isSuccessful()) {
Log.i(SUBTAG, "subscribe topic weather successful");
} else {
Log.e(SUBTAG, "subscribe topic failed,return value is" + task.getException().getMessage());
}
}
});
} catch (Exception e) {
Log.e(SUBTAG, "subscribe faied,catch exception:" + e.getMessage());
}
}
App端测自定义订阅界面:
主题订阅勾销代码实现:
public void unsubtopic(View view) {
String SUBTAG = "unsubtopic";
String topic = "weather";
try {
// 主题订阅
HmsMessaging.getInstance(PushClient.this).unsubscribe(topic).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(Task<Void> task) {
if (task.isSuccessful()) {
Log.i(SUBTAG, "unsubscribe topic successful");
} else {
Log.e(SUBTAG, "unsubscribe topic failed,return value is" + task.getException().getMessage());
}
}
});
} catch (Exception e) {
Log.e(SUBTAG, "subscribe faied,catch exception:" + e.getMessage());
}
}
App端测自定义勾销订阅界面:
(二)服务端主题订阅
1、获取Access Token。调用华为帐号服务器的接口(https://oauth-login.cloud.hua…),获取利用级鉴权凭证Access Token。
(1)申请音讯:
POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=<APP ID >&
client_secret=<APP secret >
(2)获取Access Token申请音讯实战演示:
2、主题订阅与退订。服务器调用服务端主题订阅API或主题退订API进行利用主题订阅或退订,实现对利用主题的治理。主题订阅与退订的区别在于接口地址稍有不同,申请音讯头和音讯体均为始终,具体如下:
(1)主题订阅接口:
https://push-api.cloud.huawei…[appid]/topic:subscribe
(2)主题勾销订阅接口:
https://push-api.cloud.huawei…[appid]/topic:unsubscribe
(3)申请音讯头示例,此处Bearer Token为上一步获取的Access Token:
Authorization: Bearer CV0kkX7yVJZcTi1i+uk…Kp4HGfZXJ5wSH/MwIriqHa9h2q66KSl5
Content-Type: application/json
(4)申请音讯体示例:
{
"topic": "weather",
"tokenArray": [
"AOffIB70WGIqdFJWJvwG7SOB...xRVgtbqhESkoJLlW-TKeTjQvzeLm8Up1-3K7",
"AKk3BMXyo80KlS9AgnpCkk8l...uEUQmD8s1lHQ0yx8We9C47yD58t2s8QkOgnQ"
]
}
(5)申请音讯实战演示:
(三)发送主题音讯
当创立完主题后,就能够依据主题发送音讯,以后反对基于HTTPS协定进行主题音讯发送。基于HTTPS协定示例报文如下:
{
"validate_only": false,
"message": {
"notification": {
"title": "message title",
"body": "message body"
},
"android": {
"notification": {
"click_action": {
"type": 1,
"action": "com.huawei.codelabpush.intent.action.test"
}
}
},
"topic": "weather"
}
}
App客户端测展现收到的推送音讯:
三、主题订阅音讯注意事项
客户端利用能够订阅任何现有主题,也可创立新主题。当客户端利用订阅新的主题名称尚不存在时,推送服务会应用这个名称创立一个新主题,随后任何客户端都可订阅该主题。
推送服务端给您提供了根本的主题治理API,反对一次1000个以内的Token订阅或者退订某个主题,同时每个利用最多只能存在2000个不同的主题。
主题与Token的订阅关系失效需期待一分钟,待订阅关系失效后,能够通过指向Topic或者组合Topic条件的形式实现音讯批量发送。
华为开发者联盟官网
获取开发领导文档
参加开发者探讨请到CSDN社区或者Reddit社区
下载demo和示例代码请到Github或者Gitee
解决集成问题请到Stack Overflow
原文链接:https://developer.huawei.com/…
原作者:胡椒
发表回复