写点什么

荣耀推送服务 - 发送下行消息能力指导

  • 2023-11-01
    中国香港
  • 本文字数:2790 字

    阅读完需:约 9 分钟

发送下行消息

荣耀推送服务支持您使用 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-8Authorization: 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 设置新推送的消息覆盖之前展示的消息。

  • 使用 "group" 字段。相同 group 的多条消息,只展示最新的一条消息。

{    "android": {        "notification": {            "title":"消息标题",            "body":"消息内容",            "group": "groupTest",            "clickAction": {                "type": 3            }        }    },    "token": ["token1"]}
复制代码


  • 使用 "tag" 字段。具有相同 tag 标签值的新消息覆盖老的消息。

{    "android": {        "notification": {            "title":"消息标题",            "body":"消息内容",            "tag": "tagTest",            "clickAction": {                "type": 3            }        }    },    "token": ["token1"]}
复制代码


  • 使用 "notifyId" 字段。不同的通知栏消息可以有相同的 notifyId,实现新的通知栏消息覆盖老的。

{    "android": {        "notification": {            "title":"消息标题",            "body":"消息内容",            "notifyId": 123,            "clickAction": {                "type": 3            }        }    },    "token": ["token1"]}
复制代码

注意:

您可以指定 tag、notifyId、group 三个字段来实现消息覆盖功能。三个字段是互斥的,只能使用一个。如果三个字段都设置了,字段优先级为:group > tag > notifyId。

用户头像

还未添加个人签名 2022-06-28 加入

第一时间发布荣耀开发者服务平台相关资讯,共享行业资源,合作共赢。荣耀开发者服务平台是荣耀面向开发者的统一生态入口,支持一站式接入荣耀软件、硬件生态合作,助力开发者商业成功。

评论

发布
暂无评论
荣耀推送服务 - 发送下行消息能力指导_基础服务_荣耀开发者服务平台_InfoQ写作社区