【FAQ】接入HMS Core推送服务,服务端下发消息常见错误码原因分析及解决方法

HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端,可以从服务器发送下行消息给终端设备。这篇文章汇总了服务端下发消息最常见的6个错误码,并提供了原因分析和解决方法,有遇到类似问题的开发者们快了解一下吧。

错误码一:80200001," Oauth认证错误"

原因分析:

  1. 下发消息未添加Authorization请求参数或值为空。

  1. 应用A的APPID申请的Access Token,却用于给应用B推送消息,也会出现此错误码。

申请Access Token

下发消息

解决方法:

  1. 排查请求HTTP头中是否有入参Authorization请求参数。Authorization获取方式可参考文档、下行消息API可参考文档

  2. 获取Access Token使用的APPID和下发消息使用的APPID需要保持一致。

错误码二:80300007,"Token无效错误"

原因分析:

  1. token不合法,token中多或少了字符,例如下图中多了个空格。

  1. 给应用A下发消息,token却是应用B的,这种情况也是原因之一。

解决方法:

  1. 检查token参数是否正确;

  2. 确保下发消息使用的token,是获取于目标应用的

错误码三:80300010,"消息体中的Token数量不符合默认值"

原因分析:

  1. 开发者将“message”字段拼写错误,示例图中message字段结尾多了 'r';

  2. token位置不正确,字段结构问题;

  3. 下发的token数量超过了限制,或token为空。

解决方法:

  1. 确保message、token字段写入正确;

  2. message字段包含token,与 "android"同级;

  1. token的数量应在1-1000个,确认token参数的数量,参考字段结构及说明请参考文档

错误码四:80200003,"Oauth Token过期"

原因分析:

  1. Authorization请求参数值中的Access Token已过期

  2. 请求参数值不正确,多或少了其他字符。

解决方法:

  1. Access Token有效期为一个小时,若超过限定时间,则需要重新获取并使用最新Access Token下发消息。重新获取Access Token方法可参考文

  2. 确保使用的Access Token与获取的一致,复制Access Token时出现转义字符,需要将“/”还原为“/”。

错误码五:80100016,"消息里面含有敏感信息"

原因分析:

出现这种报错说明推送消息内容中含有敏感信息

解决方法:

  1. 由于不提供敏感词库,需要开发者自行检测内容;

  2. 开发者可以接入推必安,下发消息通过推必安审核后,华为不会二次审核。接入推必安的流程可参考文档

注意事项:

  1. 推必安审核通过后,需要将推必安返回通过的结果添加到华为Review字段的result对象中,这样下发消息时华为才能知道消息审核已通过,华为也不会进行二次审核。
"review": [
        {
            "reviewer": "tuibian",[]()
            "type": 0,
            "result": {

                //以下为推必安返回结果
                "code": 200,
                "data": {
                    "auditEngine": "t****ine",
                    "auditId": "0f74b*******0b3f490d",
                    "labels": []
                },
                "msg": "Pass",
                "sign": "MEQCIBHc********IqLjw=="

            }
        }
    ]
}
  1. 并不是将整个消息体都放到推必安“content”字段中,需要审核的是“message”里面的内容,同时会对消息体内容按ASCII码升序排序后转为字符串格式进行审核。
{
    "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"
        ]
    }
} 
  1. 由于审核过程繁琐,建议减少下发字段的使用,这样操作更简单也会避免下发消息时出现80100018错误码,该错误码指发给三方机构审核的消息体与下发时的消息体不一致。

错误码六:sub_error":57303,"error_description":"appid is overload blocked","error":1302

原因分析:

过多请求access_token被流控,流控阈值为1000个/5分钟。

解决方法:

调整请求逻辑,access_token有效期为一个小时,无需频繁申请。流控5分钟后重置,可以再次申请。更多access_token相关限制可参考文档

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/HMSCore/blog/5555608

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。