HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端,可以从服务器发送下行消息给终端设备。这篇文章汇总了服务端下发消息最常见的6个错误码,并提供了原因分析和解决方法,有遇到类似问题的开发者们快了解一下吧。
申请Access Token
下发消息
排查请求HTTP头中是否有入参Authorization请求参数。Authorization获取方式可参考文档、下行消息API可参考文档。
获取Access Token使用的APPID和下发消息使用的APPID需要保持一致。
检查token参数是否正确;
确保下发消息使用的token,是获取于目标应用的
开发者将“message”字段拼写错误,示例图中message字段结尾多了 'r';
token位置不正确,字段结构问题;
下发的token数量超过了限制,或token为空。
确保message、token字段写入正确;
message字段包含token,与 "android"同级;
Authorization请求参数值中的Access Token已过期
请求参数值不正确,多或少了其他字符。
Access Token有效期为一个小时,若超过限定时间,则需要重新获取并使用最新Access Token下发消息。重新获取Access Token方法可参考文档
确保使用的Access Token与获取的一致,复制Access Token时出现转义字符,需要将“/”还原为“/”。
出现这种报错说明推送消息内容中含有敏感信息
由于不提供敏感词库,需要开发者自行检测内容;
开发者可以接入推必安,下发消息通过推必安审核后,华为不会二次审核。接入推必安的流程可参考文档。
"review": [ { "reviewer": "tuibian",[]() "type": 0, "result": { //以下为推必安返回结果 "code": 200, "data": { "auditEngine": "t****ine", "auditId": "0f74b*******0b3f490d", "labels": [] }, "msg": "Pass", "sign": "MEQCIBHc********IqLjw==" } } ]}
{ "validate_only":false, "message":{ //以下部分需要审核 "notification":{ "title":"message title", "body":"message body" }, "android":{ "collapse_key":0, "notification":{ "click_action":{ "type":2, "url":"https://example.com" } } }, "token":[ "pushtoken1" ] }}
过多请求access_token被流控,流控阈值为1000个/5分钟。
调整请求逻辑,access_token有效期为一个小时,无需频繁申请。流控5分钟后重置,可以再次申请。更多access_token相关限制可参考文档。
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~