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

原创
2023/11/01 14:32
阅读数 58

发送下行消息

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

  • 使用 "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。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部