PHP 的 GCM 推送通知突然开始抛出未经授权的 401 错误

GCM Push Notification with PHP suddenly started throwing Unauthorized 401 error

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

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

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

9 月 30 日,GCM 被弃用,FCM 是新的云消息服务。因此,您删除 GCM 并使用 FCM。

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

Here link of FCM Docs

这个问题已经存在很长时间了。有关更多详细信息,请参阅我的完整答案 here。但简短回答,以下是您需要的详细信息。

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

Starting from Sept. 2016 new server key can only be created in the Firebase Console using the Cloud Messaging tab of the Settings panel. Existing projects that need to create a new server key can be imported in the Firebase console without affecting their existing configuration.

从 GCM 迁移到 FCM 似乎也解决了 401 未授权错误的问题。

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

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

对于旧的 GCM 项目,您只需将项目导入 Firebase 控制台即可:

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

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