我们使用的设备具有 Linux 操作系统、启用了 JavaScript(使用 Node.js)。我们正在使用 google FCM 来接收通知。我们使用 JavaScript 库(此处添加了 register())通过传递发件人 ID 来获取 fcm 令牌。一切都运转良好。但从过去的几天来看,当我们尝试获取 FCM 令牌时,我们收到了 PHONE_REGISTRATION_ERROR 和 UNIMPLMENTED 错误 / UNIMPLMENTED 错误。
下面是代码片段。
(async () => {
try {
const credentials = await register(senderID);
const token = credentials.fcm.token;
const persistentIds = [];
await listen({ ...credentials, persistentIds }, onNotification);
} catch (e) {
console.log("Error::" + e);
}
})();
以下是注册功能的代码
const uuidv4 = require('uuid/v4');
const { register: registerGCM } = require('../gcm');
const registerFCM = require('../fcm');
module.exports = register;
async function register(senderId) {
// Should be unique by app - One GCM registration/token by app/appId
const appId = `wp:receiver.push.com#${uuidv4()}`;
const subscription = await registerGCM(appId);
const result = await registerFCM({
token : subscription.token,
senderId,
appId,
});
// Need to be saved by the client
return Object.assign({}, result, { gcm : subscription });
}
从过去的几天来看,我们收到了 PHONE_REGISTRATION_ERROR 和 UNIMPLMENTED 错误,如下所示。
Register request has failed with Error=PHONE_REGISTRATION_ERROR
Retry... 1
Error::StatusCodeError: 501 - "{\n \"error\": {\n \"code\": 501,\n \"message\": \"Operation is not implemented, or supported, or enabled.\",\n \"status\": \"UNIMPLEMENTED\"\n }\n}\n"
或者有时单独出现未实现的错误而无法获取令牌。我尝试多次重启设备但没有用。
我在网上查了很多问题。所有这些都显示了 Android 应用程序的问题,解决方案是清除缓存、删除应用程序并重新安装应用程序。但我找不到这个基于 javascript 的程序的解决方案。有人可以告诉我是否有办法解决这个问题吗?
我也有同样的问题。我在我的 Electron 应用程序中使用相同的库。
对于已成功获取 FCM 令牌的设备,一切正常。但新设备无法检索新的 FCM 令牌。他们遇到了与 OG 帖子中提到的相同的错误。