据称随机获得“无权向这些 tmID 发送消息”HMS 推送服务
Posted
技术标签:
【中文标题】据称随机获得“无权向这些 tmID 发送消息”HMS 推送服务【英文标题】:Getting allegedly randomly "No permission to send message to these tmIDs" HMS Push services 【发布时间】:2021-07-08 16:54:54 【问题描述】:????固定服务器端
注意:这是一个服务器端错误,目前似乎已解决。我们的移动应用代码保持不变。
我必须使用 HMS 推送服务才能使我的 RN 应用程序适用于华为 EMUI 设备:HMS Core。
我按照所有必需的步骤在服务器和移动应用上安装和配置 HMS。
但是...我注意到一个奇怪的行为。我使用网页上的按钮将推送通知从服务器发送到移动应用程序。我确保在我的华为帐号上启用了 Push Kit,并且 Push Device Token 是正确的。
有时会发送通知,有时不会。我一整天都在寻找原因,但现在看来完全是偶然的,至少在找不到原因之前是这样。
请注意,在下面的代码中,mc.send()
每次都进入.then()
,并且从未引发.catch()
。
有时我会收到:OK "code":"80000000","msg":"Success","requestId":"161832746491754926000107"
,通知实际上是从移动应用程序收到的(一切正常!)。
有时(并且经常):OK "code":"80300002","msg":"No permission to send message to these tmIDs","requestId":"161832753512250325000107"
最后,我不断收到:OK "code":"80000000","msg":"Success","requestId":"161832795126307445060711"
但是......应用程序实际上没有收到通知。
我尝试重新启动服务器,将应用程序保持在三种不同的状态(关闭、前台、后台),但没有任何帮助我找到问题。
这是我用来发送通知的最后一个版本的代码(我改了很多次):
function sendPushNotificationHMS(pushDeviceToken, data, attempt)
hcm.init(
appId: configHMS.AppId,
appSecret: configHMS.AppSecret,
authUrl: configHMS.AuthUrl,
pushUrl: configHMS.PushUrl
);
let mc = hcm.messaging().messaging;
let androidConfig =
collapse_key: -1,
urgency:"HIGH",
ttl: "10000s",
bi_tag: "the_sample_bi_tag_for_receipt_service",
let message =
data: JSON.stringify(data),
android: androidConfig,
token: new Array(pushDeviceToken)
;
mc.send(message, true).then(data =>
console.log('OK ', data);
).catch(err =>
console.log('ERR ', err);
);
【问题讨论】:
hi@kitsune,感谢您的反馈。团队确认此问题是已知的,并将在今天更正。 感谢您的回复。 HMS 是新的但很有前途,我们相信问题会得到解决。问候 hi@kitsune,团队刚刚确认问题已于昨天修复。你可以再试一次。 嗨@shirley,感谢您的支持。我们注意到现在问题似乎已经解决了,因为我们遇到了这个问题。好工作! ?????? 【参考方案1】:请参阅此文档:
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/commonerror-0000001059816656
并查看 80300002 下的解决方案之一是否正确。由于您已经检查过您的ID是否正确,请查看2、4、6和7下的提示。
【讨论】:
感谢您的回复,不过好像是服务端的bug,现在好像解决了。以上是关于据称随机获得“无权向这些 tmID 发送消息”HMS 推送服务的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用带有 Arduino 的 HM-10 或 HM-11 BLE 模块与 iOS 设备 (ANCS) 进行通信?