我为我的Android应用程序创建了一个用于GCM推送通知的Android API键。从最近两天开始,GCM服务器返回PHP中未授权的(401)响应。
Android API密钥无效/过期有什么原因吗?还是GCM不推荐使用Android API密钥?
我仍然没有得到关于为什么Android API密钥无效的适当解释?对于GCM,他们中的大多数人更喜欢服务器密钥而不是Android API密钥,但是没有提到为什么不使用Android API密钥。
GCM中为什么不用Android API Key?Android API key有什么限制吗?或者是GCM服务器阻止通知/GCM服务器使Android API密钥无效,如果通知消息超过每天的限制?
更新:正在使用的术语将返回到服务器密钥。
就在最近,现在正在推出Firebase云消息令牌(FCM令牌)。这在Firebase控制台的云消息选项卡中可见。
更新:现在在GCM文档中有一个可见的注释说:
从 2016 年 9 月开始,只能在 Firebase 控制台中使用“设置”面板的“云消息”选项卡创建新的服务器密钥。需要在 Firebase 控制台中导入需要创建新服务器密钥的现有项目,而不会影响其现有配置。
更新:从GCM迁移到FCM似乎也解决了401未经授权错误的问题。
如果您刚刚开始使用GCM,而不是在Google Developers控制台中创建项目,请在Firebase控制台中创建。创建项目后,只需使用自动生成的服务器密钥。以下是查找服务器密钥的步骤:
对于旧的 GCM 项目,您只需将项目导入到 Firebase 控制台:
出于某种原因,现在只有服务器密钥适用于GCM。Android密钥并不是唯一无效的密钥,所有其他客户端应用编程接口密钥(浏览器、iOS、Android)都是无效的。
当涉及服务器密钥的描述时:
如果您的应用程序在服务器上运行,请创建并使用服务器密钥。
使用服务器密钥是合乎逻辑的,因为您在服务器上使用API密钥,并且它与GCM连接服务器一起工作。
如果将 FCM 文档与 GCM 文档(在“凭据”下)进行比较,您可以看到,在 GCM 中,它仅声明 API 密钥,而在 FCM 中,它已经指定了服务器密钥。好吧,FCM是GCM的较新版本,可能与它有关吗?我不太确定,但我想你明白我所说的要点。
更新:在 GCM 文档中,现在指明了服务器密钥。
默认情况下,在完成配置您的API项目步骤后,会生成一个服务器API密匙(我通过选择Android app对其进行了测试)。firebase-cloud-messaging也是如此。每当我创建一个新项目时,它都会自动生成一个服务器密钥。
希望将来能解释原因。
接下来将添加有关如何创建服务器密钥的步骤。以防万一其他人感到困惑,或者新手不知道该怎么做。
---开发人员控制台中的更新在此处减少了步骤---
届时服务器密钥应可用。
更新:生成API密钥时似乎最近发生了变化。直到我上面提到的第4步都是一样的。但是,在您选择API密钥后,它将直接创建一个API密钥,而无需询问它是什么类型的密钥(服务器、Android、浏览器、iOS)。它只允许您根据您打算生成的API密钥设置一些可见的限制。
更新:创建无限制的API密钥时,它会显示一个通知(感叹号),提示您的API密钥易受攻击,这就是为什么强烈建议您为API密钥添加限制。一篇文章有这个问题,添加限制能够解决这个问题。
当我的后端服务器向GCM服务器发送post请求时,我得到一个授权错误HTTP 401。 我按照这里描述的步骤: http://developer.android.com/google/gcm/http.html#auth_error 我明白了: 在故障排除中它说: 我对此有疑问: curl请求中的头是否正确 它们是指“api_key”(AIzaSy…)还是项目编号,如8305134 如何将我的服务
我的代码:GoogleCredential凭据 credential.refreshToken() 错误日志: 创建服务号的步骤: 我在凭据中的oauth 2.0中创建了一个Web应用程序 然后我用客户端ID创建了一个服务号 现在我正在使用这个服务号和从它生成的p12证书来验证和创建Google凭据的对象 一旦刷新令牌,我就给了我401例外。 在这种情况下,任何帮助都会受到感激
问题内容: 我正在使用GCM服务从服务器推送信息。如果我使用浏览器密钥,它将成功消息显示为: {“ multicast_id”:4849013215736515938,“ success”:1,“ failure”:0,“ canonical_ids”:0,“ results”:[{“ message_id”:“ 0: 1348742583011905%2adac3a0f9fd7ecd“}]},
我试图测试Firebase Cloud messaging APIs,因为控制台没有提供所有功能(特别是当应用程序在后台时定制通知)。但由于某些原因,我无法让它工作,它总是显示401错误。我调查了出现这种情况的原因,并在重新生成新的服务器密钥后进行了尝试,但错误仍然存在。令人惊讶的是,当我生成一个新的服务器密钥时,它没有反映在Firebase控制台中,它将服务器密钥显示为空。此外,我尝试添加我的I
以下是收到的错误消息: “ErrorMessage”:“401未经授权:[{\r\n\”错误“:{\r\n \”代码\“:\”invalidauthenticationToken\“,\r\n\”消息\“:\”访问令牌验证失败。\“,\r\n\”innererror\“:{\r\n \”日期\“:”2020-06-12T11:49:22\“,\r\n\”请求-id\“:”7988BD2E-3274
我是Spring boot和Spring Security的新手,出现以下错误: “错误401未经授权(c.e.l.security.jwt.AuthEntryPointJwt:未经授权的错误:访问此资源需要完全身份验证)” 我试过这个认证 我的问题是,当我成功登录时,我想请求获取用户列表。我发送的请求是一个安全GET请求,它是http://localhost:8084/loginsystem/a