开发者社区 问答 正文

FCM/APN集成对于新令牌很好,但是当转换旧APN令牌时就不行了?

我有一个FCM项目,成功地向IOS和Android用户发送推送通知。新的IOS用户订阅并检索FCM令牌。

不过,我也有许多用户使用带有直接APN订阅的旧iOS应用程序,我尝试将一个旧APN令牌转换为FCM令牌,并使用FCM发送消息。

我使用了这里描述的API:https://www.thepolyglotdeveloper.com/2017/06/apns-tokens-fcm-tokens-simple-http/

使用FCM向转换的令牌发送一条消息,我将得到以下错误:Auth error from APNS or Web Push Service...一个StackOverflow文章在此错误上,怀疑项目设置问题,但如果IOS用户确实使用新的FCM令牌进行推送,情况会是这样吗?

任何关于这件事哪里出了问题,还有什么我可以尝试的暗示都会受到感谢,我在这里非常黑暗

展开
收起
游客5akardh5cojhg 2019-12-23 20:58:26 1195 分享 版权
阿里云 AI 助理回答

在您的场景中,您尝试将旧的APN(Apple Push Notification Service)令牌直接转换为FCM(Firebase Cloud Messaging)令牌并使用FCM服务进行推送,这实际上是一个误解。FCM和APNs是两个独立的推送通知服务,它们有自己的令牌机制,并且不支持直接互换或转换。

对于iOS设备,要通过FCM发送推送通知,您需要确保应用集成的是Firebase SDK,并通过Firebase获取FCM令牌。一旦用户安装了更新版本的应用(集成了Firebase),他们将自动获取FCM令牌,您可以使用这些令牌通过FCM向iOS设备发送消息。

对于那些仍在使用旧版应用程序、依赖于直接APNs订阅的用户,您需要继续使用APNs接口来推送通知给他们。这意味着您需要维护两套推送系统:一套用于处理FCM令牌和消息,另一套用于处理APNs令牌和消息。

如果您希望所有用户都能通过FCM接收通知,最理想的解决方案是鼓励旧版应用用户升级到集成了Firebase的新版本应用。这样,随着时间的推移,您就可以逐步淘汰对APNs的直接使用,转而完全依赖FCM进行跨平台推送。

关于错误“Auth error from APNS or Web Push Service”,这确实可能是因为尝试用一个非有效的FCM令牌(实际上是无效的APNs令牌伪装的)去调用FCM服务导致的。确保仅使用从Firebase正确注册并获取的FCM令牌,避免任何试图手动转换或伪造令牌的做法。

总结一下,您应该:

  1. 继续为新用户(已更新至集成Firebase的应用版本)使用FCM。
  2. 保持现有APNs基础设施,以服务尚未更新应用的老用户。
  3. 鼓励老用户更新应用,以便未来能统一到FCM推送体系下。
  4. 不要尝试转换APNs令牌为FCM令牌,这是不可行的。
有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: