据称随机"No permission to send message to these tmIDs" HMS推送服务



修复服务器端

注意:这是一个服务器端错误,目前似乎已经解决。我们的移动应用程序代码保持不变。


我必须使用HMS推送服务,才能使我的RN应用程序适用于华为EMUI设备:HMS Core。

我按照所有必要的步骤在服务器和移动应用程序上安装和配置HMS。

然而。。。我注意到一个奇怪的行为。我使用网页上的按钮从服务器向移动应用程序发送推送通知。我确保在我的华为ID上启用了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);
});
}

请参阅以下文档:

https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/commonerror-0000001059816656

查看80300002下的一个解决方案是否正确。由于您已经检查了您的ID是否正确,请检查2、4、6和7下的提示。

相关内容

最新更新