发送下行消息
荣耀推送服务支持您使用 HTTPS 协议接入 Push 服务端,HTTPS 协议通道提供下行消息能力。
获取 Access Token
您的服务端获取 Access Token,详情请参考获取鉴权接口。
请求示例:
POST /auth/realms/developer/protocol/openid-connect/token HTTP/1.1
Host: iam.developer.hihonor.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=<客户端ID>&client_secret=<客户端密钥>
复制代码
发送消息
您的服务端调用 API 发送 Push 消息,更多消息体内容请参见下行消息接口,相关错误码请参见下行消息响应码。
HTTPS POST URL:
https://push-api.cloud.hihonor.com/api/v1/{APPID}/sendMessage
复制代码
注意:
{APPID}
请替换为您的应用 ID, 开发者平台开通该应用 PUSH 服务后应用的 APP ID。
请求消息头示例:
Content-Type: application/json; charset=UTF-8
Authorization: Bearer CF3Xl2XV6****************************************Nm3WccUIaDg==
timestamp: 1563105451261
复制代码
注意:
请求消息头中的 Authorization 参数为 Bearer 后面拼接空格再拼接获取鉴权接口返回的 Access Token。
通知栏消息体示例:
{
"android": {
"notification": {
"title": "test title",
"body": "test body",
"clickAction": {
"type": 3
}
}
},
"token": ["pushtoken1"]
}
复制代码
透传消息体示例:
{
"data": "{'param1':'value1','param2':'value2'}",
"token": ["pushtoken1"]
}
复制代码
注意:
由于每个设备上的每个应用的 token
都是唯一存在的,您可以通过传入不同token
向特定用户推送消息。
查看消息回执
您的应用服务器接收 Push 消息回执,以便查看消息状态,详细请参见消息回执。
通知栏样式
荣耀推送服务支持多种通知栏样式,您可以自定义个性化的通知栏消息来吸引用户。荣耀推送服务支持设置下表所示的字段来自定义您的通知栏消息。
样例:
字段值:
标题:title
内容:body
通知小图:image
桌面角标
荣耀推送服务提供了设置桌面角标的 API 接口,您可以在消息中封装角标参数。
消息体示例:
{
"notification": {
"title": "message title ",
"body": "message body"
},
"android": {
"notification": {
"clickAction": {
"type": 3
},
"badge": {
"addNum": 1,
"badgeClass": "com.honor.push.MainActivity",
"setNum": 10
}
}
},
"token": ["pushtoken1"]
}
复制代码
注意:
设置应用角标数字,"badgeClass"必填,"addNum"和"setNum"选填,若"addNum"和"setNum"都设置为空,则应用角标数字默认加 1。
如果同时设置“addNum”与“setNum”,以 setNum 为准。
打开应用或者点击、清理通知栏消息并不会清理角标数,需开发者自行设置清理角标。
通知小图
荣耀推送服务提供了设置通知右侧小图的 API 接口,您可以在消息中携带 image 参数并设置。image 参数需要传入使用 HTTPS 协议的 URL。
消息体示例:
{
"android": {
"notification": {
"title":"消息标题",
"body":"消息内容",
"image":"your image url",
"clickAction": {
"type": 3
}
}
},
"token": ["token1"]
}
复制代码
注意:
图标文件大小须小于 100KB,图标建议规格大小:160px x 160px,弧角大小为 32px,超出规格大小的图标会存在图片压缩或显示不全的情况。
大文本样式
默认样式下仅支持单行文本,单行文本支持的字数太少,会有表达不全的缺陷。大文本样式支持标题单行,内容文字多行。
消息体示例:
{
"android": {
"notification": {
"title": "荣耀推送服务",
"body": "荣耀推送服务是荣耀提供的消息推送平台,建立了从云端到终端的消息推送通道。您通过集成荣耀推送SDK,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活跃度。",
"clickAction": {
"type": 3
},
"style": 1,
"bigTitle": "荣耀推送服务",
"bigBody": "荣耀推送服务是荣耀提供的消息推送平台,建立了从云端到终端的消息推送通道。您通过集成荣耀推送SDK,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活跃度。"
}
},
"token": ["pushtoken1"]
}
复制代码
注意:
大文本样式展开之前显示的标题与内容取自 title 与 body 字段,非 bigTitle 与 bigBody 字段的内容。并且 title 与 body 内容需和 bigTitle 与 bigBody 保持一致。
按钮样式
消息体示例:
{
"android": {
"notification": {
"title":"消息标题",
"body":"消息内容",
"image":"your image url",
"clickAction": {
"type": 3
},
"buttons":[{
"name":"打开应用",
"actionType":"2",
"intent":"https://example.com/image.png"
}]
}
},
"token": ["token1"]
}
复制代码
注意:
通知栏消息动作按钮,最多设置 3 个
其它能力
通知栏消息覆盖展示
通知栏消息到达终端设备展示后,如果用户没有点击或者清理,您可以通过推送服务端 REST API 设置新推送的消息覆盖之前展示的消息。
{
"android": {
"notification": {
"title":"消息标题",
"body":"消息内容",
"group": "groupTest",
"clickAction": {
"type": 3
}
}
},
"token": ["token1"]
}
复制代码
{
"android": {
"notification": {
"title":"消息标题",
"body":"消息内容",
"tag": "tagTest",
"clickAction": {
"type": 3
}
}
},
"token": ["token1"]
}
复制代码
{
"android": {
"notification": {
"title":"消息标题",
"body":"消息内容",
"notifyId": 123,
"clickAction": {
"type": 3
}
}
},
"token": ["token1"]
}
复制代码
注意:
您可以指定 tag、notifyId、group 三个字段来实现消息覆盖功能。三个字段是互斥的,只能使用一个。如果三个字段都设置了,字段优先级为:group > tag > notifyId。
评论