首页 文章

GCM到Firebase - 服务器端迁移和batchAdd API

提问于
浏览
1

我有一个应用程序,到目前为止使用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

1 回答

  • 1

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

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

    不幸的是,主题API(GCM和FCM都不支持)使用第一个API生成的令牌 .

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

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

相关问题