gpt4 book ai didi

android - GCM的API key 突然无效?未经授权(401)错误

转载 作者:IT老高 更新时间:2023-10-28 22:12:32 25 4
gpt4 key购买 nike

我为Android应用程序的GCM推送通知创建了Android API key 。从最近两天开始,GCM服务器在PHP中返回未授权(401)响应。

是否有任何原因导致Android API key 无效/过期?还是GCM不赞成使用Android API key ?

关于Android API key 为何无效,我仍然没有得到适当的解释?对于GCM,大多数人更喜欢使用服务器 key 而不是Android API key ,但没有提及为何不使用Android API key 。

为什么不在GCM中使用Android API key ? Android API key 是否有任何限制?还是GCM服务器阻止了通知/如果通知消息超过每日限制,GCM服务器正在使Android API key 无效?

最佳答案

更新:使用的术语返回到服务器 key

就在最近,现在正在推出 Firebase云消息传递 token (FCM token )。这在Firebase控制台的“云消息传递”选项卡中可见。

更新: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 Developers Console中创建项目,请在Firebase Console中进行操作。创建项目后,只需使用自动生成的服务器 key 即可。以下是查找服务器 key 的步骤:
  • 转到您的Firebase Console,然后单击CREATE NEW PROJECT。
  • 填写所需的项目名称,然后选择您的国家/地区。此后,新项目应处于 Activity 状态。
  • 然后在左侧面板上,单击齿轮按钮,然后选择项目设置
  • 然后转到云消息传递选项卡

  • 对于旧的GCM项目,您只需将项目导入Firebase控制台即可:
  • 转到您的Firebase Console,然后单击IMPORT PROJECT。
  • 选择要导入的项目和您所在的国家。
  • 单击添加FIREBASE。此后,新项目应处于 Activity 状态。
  • 然后在左侧面板上,单击齿轮按钮,然后选择项目设置
  • 然后转到云消息传递选项卡


  • 由于某些原因,现在只有服务器 key 可用于GCM。 Android key 并不是唯一看起来无效的 key ,所有其他客户端API key (浏览器,iOS,Android)都是无效的。

    当涉及到 Server Key的描述时:

    Create and use a Server key if your application runs on a server.



    使用服务器 key 是合乎逻辑的,因为您正在服务器上使用API​​ key ,并且它可以与GCM Connection服务器一起使用。

    如果将 FCM docsGCM docs(在 凭据下)进行比较,可以看到在GCM中,它仅声明API key ,而在FCM中,它已经指定了服务器 key 。好吧,FCM是GCM的更新版本,可能与它有关吗?我不太确定,但我想您会明白我在说什么。

    更新:在GCM文档中,现在指示服务器 key 。

    默认情况下,经过 Configure your API Project步骤后,会生成服务器API key (我通过选择Android应用程序对其进行了测试)。 也是如此。每当我创建一个新项目时,它都会自动生成一个服务器 key 。

    希望将来会有原因的解释。

    继续,并添加有关如何创建服务器 key 的步骤。以防万一其他人感到困惑,或者新手不确定如何做。
  • 转到您的Google Developers Console
  • 在左侧 Pane 中,单击“凭据”
  • 在Credentials选项卡下,单击Create Credentials
  • 选择API key

  • ---在开发人员控制台中进行更新可简化此处的步骤---
  • 选择服务器 key
  • 填写详细信息。
  • 单击创建

  • 届时服务器 key 应该可用。

    更新:似乎在生成API key 时发生了最近的更改。直到我上面提到的步骤4为止都是一样的。但是,选择“API key ”后,它将直接创建一个API key ,而无需询问 key 的类型(服务器,Android,浏览器,iOS)。它将仅允许您设置一些 限制,这些限制取决于您打算生成的API key 而可见。

    更新:创建无限制的API key 时,它会显示一个通知(感叹号)您的API key 易受攻击,这就是 强烈建议鼓励您 为您的API key 添加限制的原因。一个 post遇到了这个问题,添加一个限制就可以解决它。

    关于android - GCM的API key 突然无效?未经授权(401)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37789264/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com