更新:所使用的术语已经回到
服务器密钥。
最近,有一个新的Firebase云消息传递令牌(FCM令牌)正在推出。您可以在Firebase控制台的Cloud Messaging标签中看到它。
更新:
GCM文档现在有一个可见的提示,内容如下:
从2016年9月开始,新的服务器密钥只能在Firebase控制台上使用“设置”面板中的云消息传递选项卡中创建。需要创建新服务器密钥的现有项目可以在Firebase控制台中导入,而不会影响其现有配置。
更新: 迁移至 FCM 似乎也可以解决 401 未授权错误的问题。
如果您刚开始使用 GCM,请在 Firebase 控制台中创建项目,而不是在 Google Developers Console 中创建。创建项目后,只需使用自动生成的服务器密钥即可。以下是找到服务器密钥的步骤:
- 前往 Firebase 控制台 并单击 创建新项目。
- 填写所需的项目名称并选择所在国家/地区。完成后,新项目应处于活动状态。
- 然后在左侧面板上,单击 齿轮按钮 并选择 项目设置。
- 接下来前往 云消息传递选项卡。
对于旧的 GCM 项目,您可以将项目导入 Firebase 控制台:
- 前往Firebase控制台,点击导入项目。
- 选择要导入的项目和所在国家。
- 点击添加Firebase。这样,新项目就会激活。
- 然后,在左侧面板上,点击齿轮按钮并选择项目设置。
- 接着进入云消息传递标签页。
由于某些原因,现在只有服务器密钥可以使用GCM。Android密钥不是唯一一个似乎无效的,所有其他客户端API密钥(浏览器,iOS,Android)也是如此。
当涉及服务器密钥的描述时:
如果您的应用程序运行在服务器上,请创建和使用服务器密钥。
使用服务器密钥是合理的,因为您正在服务器上使用API密钥,并且它正在与GCM连接服务器一起工作。
如果您将FCM文档与GCM文档(在凭据下)进行比较,您会发现在GCM中,只规定了API密钥,而在FCM中,它已经指定了服务器密钥。好吧,FCM是GCM的新版本,也许这与此有关?我不太确定,但我想您明白我的意思。
更新: 在GCM文档中,现在已指示服务器密钥。
默认情况下,在经过
配置您的API项目步骤后,将生成服务器API密钥(我通过选择Android应用程序进行了测试)。
Firebase云消息传递也是如此。每当我创建一个新项目时,它只会自动生成服务器密钥。
希望将来能有解释。
我会添加如何创建服务器密钥的步骤,以防其他人感到困惑或新手不确定。
- 前往Google Developers Console
- 在左侧窗格中,点击凭据
- 在凭据选项卡下,单击创建凭据
- 选择API密钥
---更新开发者控制台在此处削减了步骤---
- 选择服务器密钥
- 填写详细信息。
- 单击创建
此时应该可以使用服务器密钥。
更新:似乎最近在生成API密钥时有了一些变化。它与我上面提到的第4步相同。但是,在您选择API密钥之后,它将直接创建一个API密钥,而不会询问密钥类型(服务器、Android、浏览器、iOS)。它只允许您设置一些
限制,这取决于您要生成哪种API密钥。
更新: 当创建一个没有限制的 API 密钥时,会显示一个警告(感叹号)表示您的 API 密钥存在漏洞,因此
强烈建议您为 API 密钥
添加限制。一个
帖子曾经遇到了这个问题,添加了限制后问题得到了解决。