【发布时间】:2021-04-06 19:32:52
【问题描述】:
我有一个向手机浏览器发送推送通知的网络应用项目。我已成功从我的华为设备检索推送令牌,但无法从我的服务器通过 HMS Push Kit 发送通知,收到 HTTP 401 并包含错误正文:
{
"msg": "No permission to send message to these tmIDs",
"code": 80300002
}
我已联系客户服务并被指向以下 URL,我执行了此处列出的所有操作,但仍然遇到相同的错误。
这是返回错误的 URL (POST)(从我的服务器发送,使用项目设置中的应用 ID):
https://push-api.cloud.huawei.com/v1/my_app_id_from_project_settings/topic:subscribe
使用控制台中的 OAuth 2.0 客户端 ID/秘密(“凭据”)从以下 URL 检索到访问令牌:
我也从控制台申请了华为帐号(应用服务 > 开发 > 华为帐号,使用相同的 OAuth 2.0 Client ID/secret)。
我为解决问题所做的工作:
- 已启用推送工具包(控制台级别和项目级别)
- 已删除反斜杠 (\) 并进行 URL 编码的访问令牌
- 服务器位置:新加坡(已按建议禁用并重新启用 Push Kit)
- 带有 JSON 正文的 POST 请求正文只有两个属性
topic(字符串)和tokenArray(字符串数组,例如["token1", "token2"]) - 带有
Authorization: Bearer <access_token>的POST 请求标头 - 带有
Content-Type: application/json的POST 请求标头 - 使用“云调试”功能进行调试。
- 在运行 Android 11(API 级别 30,HMS Core 5.0.3.304)的模拟器上测试
- 在我的运行 EMUI 8.0(带有 Google Play 服务)的华为设备上测试
- 在 Android Chrome 87(设备)、Android Chrome 83(模拟器)上测试
【问题讨论】:
-
您能提供您的appid吗? :)
-
是的@shirley 9105385871711569431 :)
-
@mohax 我已经这样做了,在发布问题之前,我已经阅读了几乎所有在 StackOverflow 上可以找到的关于此问题的帖子。