cre*_*not 4 go google-client firebase google-cloud-platform firebase-remote-config
这边的火力地堡文档解释如何检索令牌发出请求到所需的远程配置REST API。
它提供了Python、Java 和 Node.js 的示例代码。因为没有Go 的代码,它把我送到了Google Client Library (for Go)。你也许能理解我为什么迷路了......
这些示例使用GoogleCredential
Java中,ServiceAccountCredentials
在Python和google.auth.JWT
在Node.js的。我在这里找不到任何这些。我不知道为什么没有明确的命名约定。
firebaseremoteconfig-gen.go
:代码看起来已经实现了Firebase 文档页面试图“手动”实现的目标。比较:doc,package。
因为包的“用法示例”结束得奇怪突然,与广泛相反,我不明白如何使用它。
如果有人能告诉我如何使用它,我会得到帮助:
firebaseremoteconfigService, err := firebaseremoteconfig.New(oauthHttpClient)
Run Code Online (Sandbox Code Playgroud)
我不知道我会从哪里来oauthHttpClient
。oauth2
存储库中有一个包,但我面临同样的问题:
oauth2Service, err := oauth2.New(oauthHttpClient)
Run Code Online (Sandbox Code Playgroud)
我oauthHttpClient
再次需要,所以这不能成为解决方案。
http.Client
可以是任何东西,但我需要使用service-account.json
文件进行身份验证,如此处的三个示例片段所示。
我希望有人有将Firebase 远程配置与Go集成的经验,有人知道Google 客户端 API身份验证的工作原理,或者有人对Go足够了解以了解其用法。
使用谷歌 API 进行身份验证有几种主要方法,它们记录在此处:
记录的方式是“3-legged OAuth”、“使用 API 密钥”,最后是“服务帐户”。
从您在问题中包含的链接;您正在查看“服务帐户”的 Python/Java/Node 示例。
在 go 中使用服务帐户
在oauthHttpClient
你指的是HTTP客户端,将认证信息会自动连接到请求。
您可以使用此包创建一个:
https://godoc.org/golang.org/x/oauth2/google
以其他语言链接的示例使用“服务帐户 json 密钥文件”。
使用下面链接的方法,您可以读取该密钥文件并创建一个jwt.Config
结构,使您可以访问所需的客户端。
https://godoc.org/golang.org/x/oauth2/google#JWTConfigFromJSON
链接的其他语言示例的 go 等价物是;
data, err := ioutil.ReadFile("/path/to/your-project-key.json")
if err != nil {
log.Fatal(err)
}
conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/firebase.remoteconfig")
if err != nil {
log.Fatal(err)
}
// Initiate an http.Client. The following GET request will be
// authorized and authenticated on the behalf of
// your service account.
client := conf.Client(oauth2.NoContext)
client.Get("...")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1080 次 |
最近记录: |