【问题标题】:GCM Push Notification with PHP suddenly started throwing Unauthorized 401 error使用 PHP 的 GCM 推送通知突然开始抛出未经授权的 401 错误
【发布时间】:2016-10-14 05:46:58
【问题描述】:

过去 1 年我一直在使用 GCM 服务,它运行良好。但它从 9 月 30 日开始抛出错误。首先它开始抛出 443 超时错误,但几天后它现在抛出 Unauthorized 401 错误。它现在连一个推送都没有。

我有一个 Android 应用程序并使用 PHP-MYSQL 服务器发送推送通知。这似乎不是 API_KEY 问题,因为我检查了一些在线测试站点(http://apns-gcm.bryantan.info/),推送通知正在成功发送。

我现在计划迁移到 FCM,但是我现有的 GCM 用户呢?如何向他们发送推送?

【问题讨论】:

    标签: php android google-cloud-messaging firebase-cloud-messaging


    【解决方案1】:

    这个问题已经有一段时间了。有关更多详细信息,请参阅我的完整答案 here。但简而言之,以下是您需要的详细信息。

    GCM docs 中有一条可见的注释:

    从 2016 年 9 月开始,只能使用“设置”面板的 Cloud Messaging 标签在 Firebase 控制台中创建新的服务器密钥。现有项目需要新建服务器密钥,可以在Firebase console中导入,不会影响现有配置。

    从 GCM 迁移到 FCM 似乎也解决了 401 Unauthorized Error 的问题。

    如果您刚刚开始使用 GCM,不要在 Google Developers Console 中创建项目,而是在 Firebase 控制台中进行。创建项目后,只需使用自动生成的服务器密钥。以下是查找服务器密钥的步骤:

    1. 转到您的Firebase Console 并点击创建新项目
    2. 填写您想要的项目名称并选择您的国家。在此之后,新项目应该处于活动状态。
    3. 然后在左侧面板上,点击齿轮按钮并选择项目设置
    4. 然后转到云消息选项卡

    对于旧的 GCM 项目,您可以简单地将项目导入 Firebase 控制台:

    1. 转到您的Firebase Console 并单击导入项目
    2. 选择您要导入的项目和您所在的国家/地区。
    3. 单击添加 FIREBASE。在此之后,新项目应该处于活动状态。
    4. 然后在左侧面板上,点击齿轮按钮并选择项目设置
    5. 然后转到云消息选项卡

    对于您的 GCM 用户,只要您保存了注册令牌,您就不必担心。只要你使用对应的Sender ID发送推送,FCM should still work with GCM

    【讨论】:

    • 我已经在 Firebase 控制台 (console.firebase.google.com) 中导入了我的项目,但它生成了新的发件人 ID,因此它返回未注册用户错误。如何在 fcm 中使用现有的 gcm Sender ID?
    • @kris12356 - 这很奇怪。即使您迁移,发件人 ID 也不应更改。看到这个answer
    • 可能是我遗漏了什么,让我再检查一遍。很快就会更新你。
    • 谢谢@AL。它现在正在工作。客户端确实在包名称错误,所以它创建了新的项目ID。
    【解决方案2】:

    9 月 30 日,GCM 被弃用,FCM 是新的云消息传递服务。所以你删除 GCM 并使用 FCM。

    Firebase 云消息传递 (FCM) 是 GCM 的新版本。它继承了可靠且可扩展的 GCM 基础架构,以及新功能!请参阅常见问题解答以了解更多信息。如果您要在新应用程序中集成消息传递,请从 FCM 开始。强烈建议 GCM 用户升级到 FCM,以便从现在和将来的新 FCM 功能中受益。

    Here link of FCM Docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 2016-10-13
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多