注册令牌不是有效的 FCM 注册令牌

Posted

技术标签:

【中文标题】注册令牌不是有效的 FCM 注册令牌【英文标题】:The registration token is not a valid FCM registration token 【发布时间】:2019-05-31 13:10:03 【问题描述】:

我正在尝试使用我从保存在我的 android 设备的 PassWallet 应用程序中的票证中获得的令牌向我的设备发送消息。

设备使用苹果的钱包规范发​​送更新通行证所需的所有信息。但是,我正在使用 FCM 发送通知,我收到此错误:“”


errorInfo: 
    code: 'messaging/invalid-argument',
     message: 'The registration token is not a valid FCM registration token' ,
  codePrefix: 'messaging' 

我用来发送消息的代码是来自 Admin SDK 示例的代码:

var message = 
        token: device.pushToken
      ;

      admin.messaging().send(message)
        .then((response) => 
          console.log('Successfully sent message:', response);
        )
        .catch((error) => 
          console.log('Error sending message:', error);
        );

我不确定我的消息是否不完整,是否需要其他内容 身体。

如果令牌过期(您可以在 Firebase 上进行验证)。

如果消息需要指定是Android、ios(APNS)等...

这是完整的堆栈跟踪:

Error: The registration token is not a valid FCM registration token
    at FirebaseMessagingError.FirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:39:28)
    at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/srv/node_modules/firebase-admin/lib/utils/error.js:85:28)
    at new FirebaseMessagingError (/srv/node_modules/firebase-admin/lib/utils/error.js:241:16)
    at Function.FirebaseMessagingError.fromServerError (/srv/node_modules/firebase-admin/lib/utils/error.js:271:16)
    at FirebaseMessagingRequestHandler.handleHttpError (/srv/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:125:50)
    at /srv/node_modules/firebase-admin/lib/messaging/messaging-api-request.js:113:23
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
  errorInfo: 
    code: 'messaging/invalid-argument',
     message: 'The registration token is not a valid FCM registration token' ,
  codePrefix: 'messaging' 

【问题讨论】:

我认为 PassWallet 代币不是有效的 FCM 代币。要获取有效的 FCM 令牌,请参阅 firebase.google.com/docs/cloud-messaging/ios/… 嗨弗兰克,我不确定你的建议是使用 apns 发送消息还是只生成新消息。问题是 passwallet 是一个我无法控制的应用程序,但他们使用 .pkpass 文件,就像在 iOS 钱包中一样,我是否可以通过 apn 向这个应用程序发送通知。 要通过 FCM 发送消息,您需要一个 FCM 令牌。无论您从 passwallet 获得什么,似乎都不是有效的 FCM 令牌。 坦率地说,你是对的,令牌是问题所在。我尝试通过邮递员和 curl 发送消息,但在响应中收到此错误:“错误”:“无效注册”。当我使用 pkpass 文件返回的 pushToken 将通知发送到该设备时。我不确定如何使该令牌成为 FCM 的有效令牌,或者我是否应该改用 APNS @FrankvanPuffelen,基于这个问题***.com/questions/37464706/…。我认为我需要做的是将 APN 令牌转换为 FCM 令牌,但是 batchImport 需要一个应用程序并说是应用程序包。问题是,无论用户手机中的钱包应用程序如何,我都希望代币能够正常工作。在这种情况下我该怎么办?我从一个虚假的应用程序包中收到此响应 "message_id": "0:1547059178561977%9ba8a687f9fd7ecd" 这意味着我不知道该消息已发送 【参考方案1】:

您应该发送到 Passwallet 服务器的有关更新通行证的所有信息。 请在此处找到最新说明:https://github.com/Kwiket/passwallet

密码钱包团队

【讨论】:

以上是关于注册令牌不是有效的 FCM 注册令牌的主要内容,如果未能解决你的问题,请参考以下文章

FCM:无效的注册令牌。检查令牌格式

FCM 令牌是不是在操作系统更新时刷新?

提供的注册令牌无效。确保它与客户端应用从 FCM 注册时收到的注册令牌匹配

fcm 注册令牌自动存储到 firebase 数据库中

无法获取 FCM 注册令牌

为啥不获取 Android Firebase FCM 注册令牌?