一. 问题描述
-
使用华为推送服务下发IM消息时,下发消息请求成功且code码为80000000,但是手机总是收不到消息;
-
在华为推送自助分析(Beta)平台查看发现,消息发送触发了频控。
二. 问题原因及背景
-
2023年1月05日起,华为推送服务对咨询营销类消息做了单个设备每日推送数量上限管理,具体数量上限可以查看如下文档:不同应用类别的推送数量上限要求。
-
华为推送服务对消息分类做了优化,从2023年3月31日起推送消息将统一通过消息自分类进行分类。未接入自分类的应用默认可发送营销消息,受营销消息频次管控限制。
-
基于以上原因,若应用有发送服务与通讯消息的场景,需要申请自分类权限,以防因营销消息频次管控导致服务与通讯类消息下发失败
三. 申请消息自分类权限
1. 自分类权益申请要求:
a. 已上架应用市场的应用,在不违反华为通知违规行为的前提下推送消息,可按要求申请消息自分类权益。
b. 未上架应用市场的应用,满足以下所有条件后须发送邮件(开通自分类申请资质)至hwpush@huawei.com,邮件审核通过之后再申请消息自分类权益。
1) 仅服务于自身企业或政府组织单位内部。
2) 提供包含被服务主体盖章的证明函(证明函请参考下文),证明该App申请此权限仅为内部办公使用。
3) 其他类型的应用请先上架应用市场再申请自分类。
未上架应用申请开通自分类资质邮件模板示例:
邮件主题:未上架应用申请开通自分类资质-应用名称
邮件正文:
公司全称:XXX
应用名称:XXX
AppId:XXXX
应用包名:XXX
应用是否已上架:是/否
承诺函请参考附件:[承诺函-应用名称]()
2. 自分类权益申请流程:
a. 具体可以查看文档。
b. 待申请通过之后,一定要点击界面上方的“激活功能”进行激活。若超过两个月未激活,需要重新申请。
四. 应用适配开发
自分类权限申请通过之后,下发服务与通讯类消息时消息体中一定要携带category字段,否则自分类权益是不会生效的,如下发IM类消息。
a. 创建消息体并携带category字段,进行消息下发请求。
b. 端侧收到下发的消息,在通知管理页面查看通知类别为服务提醒,且消息无限频,可知自分类权益已生效。
c. 如果消息体未携带category字段标识,那么自分类权益是不会生效的,如创建消息体但是未携带category字段,进行消息下发请求。
d. 端侧收到下发的消息,在通知管理页面查看通知类别为内容咨询,可知若消息体中未携带category字段标识,自分类权益是不会生效的。
五. 问题解答
- 请求消息下发接口成功且接口返回80000000码,消息一定会下发到设备吗?
答:不是的,消息下发接口返回80000000码的意思是消息下发的请求是成功的,但是并不代表消息成功到达了设备,消息是否成功到达设备可以通过消息回执的回执码进行判断。
- 未申请自分类权益,如何保证发送的测试消息不被频控?
答:为了方便开发者测试消息,在推送消息时可以设置target_user_type参数为1。每个应用每日可发送500条测试消息且不受每日单设备推送数量上限要求。
- 如何获悉当日推送数量已经超过限制的Push Token?
答:您可以开通消息回执并基于接收到的回执状态码256来获取推送数量超过限制的Push Token。建议您在推送资讯营销类消息前,根据此回执信息过滤掉当日已经超过限制的Push Token,避免无效的消息推送请求。
- 因服务与通讯类消息下达到设备时提醒方式为非静默提醒,如何保证服务与通讯类消息以静默提醒的方式下发到设备?
答:若您希望服务与通讯类消息按照静默(无铃声振动)方式发送,可以在满足自分类适配要求的基础上,添加importance字段且传值为“LOW”。
- 带有category字段的消息体示例是什么?
{
"validate_only": false,
"message": {
"android": {
"notification": {
"title": "小明",
"body": "今天的周报已发,有时间请看一下",
"click_action": {
"type": 3
}
},
"category":"IM"
},
"token": ["IQAAAACy0****************_7FL_0P******************g5K-ODO1_*********************_zb7v9OAK**************lmgQ"]
}
}
六. 参考资料
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!