【问题标题】:GCM to Firebase - server side migration and batchAdd APIGCM 到 Firebase - 服务器端迁移和 batchAdd API
【发布时间】:2017-09-04 14:22:12
【问题描述】:

我有一个应用程序,到目前为止,它对 Android 使用纯 GCM 集成,对 iOS 使用纯 APNS 集成。客户端应用程序注册推送通知服务并将注册令牌发送回我的服务器,我可以使用它来发送目标消息。这是现有的系统。 现在我已将我的 GCM 项目导入 Firebase,并将 Android 和 iOS 应用程序配置添加到项目中。这样,我可以将 Firebase SDK 集成到我的下一个版本的应用中,并使用增强的通知功能。

下一步是更改后端实现并使用 Firebase 控制台发送通知。 Instance ID batchImport API 非常简单,我从我的数据库中获取了 APNS 令牌,API 返回了注册令牌。我在 Firebase 中用于单个设备并触发了通知。我什至可以将此令牌订阅到我希望的主题。

但现在我尝试在 Firebase 控制台中使用 Android GCM 注册令牌,没有错误,但没有触发通知。当我尝试使用batchAdd 订阅主题时,我收到了以下带有 HTTP 响应 400 的输出。

{
  "error": "InvalidTokenVersion"
}

我还没有找到任何关于这个错误的文档,以及如何更正它。我使用的令牌完全有效,因为我可以通过旧的 GCM 服务器代码触发通知。

GCM 令牌如下所示

APA91bE_uLJ4dyXXXXX_Tn2qbCWgzCW4GR6t78_z-Up_gSdX7tekiSKWmXXXXXwSainHPTz5hQ6XM8F-j3XLKZuIUgNM84v_XXXXXeJ1pX_YBTn5OUNnZte2uSSisLBqQwCPGYXXXXXX

导入APNS令牌后生成新令牌,令牌长度有差异,其他找不到。

cUt0RhCYXXX:APA91bG5JraXXXXX1M2lFHjzw_XXXXXg2qGQZ_iUDjoaXXXXXw4vv0JND24-4hj5ppvsXXXXXV4WWgNsurteN_nXXXXXi3SfzjBXZt5X00PXzhb3XXXXXlf_WDVxoIvkXXXXXRd2Rw1

【问题讨论】:

  • 嗨阿什什。澄清一下,您是否在收到InvalidTokenVersion 错误时使用了 new 令牌?
  • 我正在使用我现有的 GCM 注册令牌。如果 FCM 需要不同版本的令牌,则必须有一种方法将现有的 reg 令牌转换为新版本的 FCM 兼容令牌,就像我们导入 APNS 令牌一样。
  • 您能发布一个令牌的示例格式吗? AFAIK,旧令牌(最新的 GCM 版本)应该与 FCM 兼容。但是,如果您的令牌是使用较旧的 GCM 方法(如 .register())生成的,我认为您必须更新您的实现(可能使用 FCM)以生成令牌的更新版本(参见 here --我在这个答案中提出了一个问题,但看起来它与已弃用的 GCM 版本不兼容。
  • @AL。向问题添加了令牌格式
  • @AL。但我的问题是我将不得不等待并发布集成了兼容 FCM SDK 的应用程序的新版本,并等待我的所有用户进行版本更新,而不是每个人都更新。导入现有的工作 GCM 令牌并获得新的工作 FCM 兼容令牌应该是直截了当的。如果可以使用由 iOS 管理的完全不同格式的 APNS 进行导入,那么为 Google 自己的令牌执行此操作似乎是合乎逻辑的,一定有办法做到这一点。

标签: firebase google-cloud-messaging firebase-cloud-messaging firebase-notifications


【解决方案1】:

GCM 库包含 2 个不同的 API 来生成 GCM 令牌:

GoogleCloudMessaging.register() // Deprecated in 2015
InstanceID.getToken()

很遗憾,Topics API(在 GCM 和 FCM 中)不支持使用第一个 API 生成的令牌。

BathAdd API 是 InstanceId / Topics API 的一部分。

我知道这并不理想,不幸的是,最好的选择是更新应用程序以使用 GCM InstanceId.getToken() 或 FCM。

【讨论】:

  • 是的,经过反复阅读和尝试,我得出了同样的结论。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多