我正在尝试查询firebase以获取我的get应用程序的远程配置。出于性能原因,我想使用REST API,而不是官方SDK。
到目前为止,我已经尝试在stackoverflow上跟随google documentation和this post。
目前,无论我尝试什么,我都会得到这样的响应:
curl -H "Authorization: Bearer {token}" \
"https://firebaseremoteconfig.googleapis.com/v1/projects/{my-project-name}/remoteConfig"
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
我不知道该如何检索持有者令牌。我尝试了在IAM admin > API & Service > Credentials
中找到的所有价值,但都没有成功。
谢谢你的帮助。
发布于 2020-12-19 05:22:32
可以在不使用Google API客户端库的情况下授权对Firebase远程配置API的调用,但不建议这样做。
正如在Oauth 2.0 authorization with service account中所解释的,“您的应用程序可以通过使用针对您的语言的Google API客户端库,或者通过使用HTTP2.0直接与HTTP2.0系统交互来完成这些任务。但是,'OAuth 2.0‘身份验证交互机制要求应用程序创建JSON Web令牌(JWT)并对其进行加密签名,并且很容易出现严重错误,从而对应用程序的安全性产生严重影响。“
如果确实有必要避免使用Google API客户端库,也可以使用其他第三方工具,如oauth2l。然而,谷歌并没有正式支持这个工具,它的功能也不能得到保证。
我只想突出显示--credentials' argument作为选择服务帐户的方法,JSON文件和cURL command作为此用例的示例。
我建议您遵循documentation,其中列出了使用Google API Client Library授权有问题的API所需的步骤。请记住,由steps生成的服务帐户JSON文件代表Firebase Admin SDK服务帐户的私钥,这是一个非常适合使用的服务帐户,但任何具有Firebase远程配置角色'Firebase远程配置管理员‘的服务帐户也将work。
我想强调的一个重要话题是,目前https://www.googleapis.com/auth/firebase.remoteconfig作用域存在一个持续存在的问题,它影响了授权访问此接口的典型过程,您可以使用https://www.googleapis.com/auth/cloud-platform作用域,它在REST API doc中作为替代方案提到。(如果您希望使用“oauth2l”,则适用此解决方法)
https://stackoverflow.com/questions/64717804
复制相似问题