更新:所使用的术语是回服务器密钥。
就在最近,现在有一个即将推出的Firebase云消息传递令牌(FCM令牌)。这在Firebase控制台的云消息传递标签中可见。
更新:现在在GCM docs可见的纸条,上面写着:
从2016年9月开始的新服务器密钥只能在火力地堡控制台创建使用的Cloud Messaging标签设置面板。需要创建新服务器密钥的现有项目可以导入Firebase console而不影响其现有配置。
更新:它也似乎从GCM迁移到FCM修复该问题的401未授权错误。
如果您刚刚开始使用GCM,而不是在Google Developers Console中创建项目,请在Firebase控制台中执行该项目。创建项目后,只需使用自动生成的服务器密钥。下面是在哪里可以找到服务器的关键步骤:
- 转到您的Firebase Console并点击创建新项目。
- 填写您想要的项目名称并选择您的国家。在此之后,新项目应该是活跃的。
- 然后在左侧面板上,点击齿轮按钮并选择项目设置。
- 然后转到Cloud-Messaging标签。
对于老项目GCM,你可以简单地导入项目到火力地堡控制台:
- 转到您的Firebase Console并点击导入项目。
- 选择您要导入的项目和您的国家。
- 点击ADD FIREBASE。在此之后,新项目应该是活跃的。
- 然后在左侧面板上,点击齿轮按钮并选择项目设置。
- 然后转到Cloud-Messaging标签。
出于某种原因,只有一个服务器密钥作品现在GCM。 Android密钥不是唯一一个看起来无效的密钥,所有其他客户端API密钥(浏览器,iOS,Android)都是。
当属于Server Key的描述:
创建,如果你的应用程序运行在服务器上使用服务器密钥。
由于您在服务器上使用API密钥,并且它与GCM连接服务器一起工作,因此使用服务器密钥是合乎逻辑的。
如果比较FCM docs与GCM docs(下凭证),你可以看到,在GCM,它只规定API密钥,而在FCM,它已经指定一个服务器密钥。那么,FCM是GCM的新版本,可能与它有什么关系?我不太确定,但我认为你明白了我的意思。
更新:在GCM文档中,现在指出了服务器密钥。
默认情况下,通过以下步骤Configure your API Project去后,服务器API密钥生成(I通过选择Android应用测试它)。 firebase-cloud-messaging也一样。每当我创建一个新项目时,它都会自动生成一个服务器密钥。
希望未来会有解释为什么。
要继续前进并添加关于如何创建服务器密钥的步骤。以防万一其他人感到困惑,或者新手不确定如何。
- 转到您的Google Developers Console
- 在左窗格中,单击证书
- 在凭证选项卡,点击创建凭证
- 选择API密钥
--- 更新在Dev elopers控制台削减步骤这里 ---
- 选择服务器密钥
- 填写详细信息。
- 点击创建
服务器密钥应由然后可用。
更新:好像有生成API密钥时,最近的变化。直到上面提到的步骤4为止。但是,在选择API密钥后,它将直接创建API密钥而不询问它是什么类型的密钥(服务器,Android,浏览器,iOS)。它只会允许您设置一些限制根据您打算生成哪个API密钥,这是可见的。
更新:当没有任何限制创建API密钥,它显示一个通知(感叹号),你的API密钥是脆弱的,这就是为什么它被非常鼓励为你添加您的API密钥的限制。其中一个post发生此问题,并且添加了限制即可解决该问题。
您是否更新了PHP脚本中的必要凭证?您是否在Google开发者控制台中包含了您的包名? –
@kumar我更新了我的答案。一探究竟。如果你正在寻找官方理由,似乎还没有任何披露。 –
嗨@kumar,我今天也遇到类似的问题。自2年来一直运行良好,但自从星期五以来,我开始接受401未经授权的错误。尝试重新生成服务器密钥,但没有成功。 你是否设法解决它? – Shubhral