【问题标题】:How to generate oauth token, client id and secret using gcloud or Google Cloud Java SDK如何使用 gcloud 或 Google Cloud Java SDK 生成 oauth 令牌、客户端 ID 和密钥
【发布时间】:2019-11-30 07:33:51
【问题描述】:

我有一个非常大的任务,我需要自动化创建 Dialogflow 代理的过程,为此我需要首先创建一个 Google 项目,我已经使用 Java SDK 弄清楚了,然后我需要获取客户端 ID 和客户端获取访问令牌以将其发送到 Dialogflow 代理创建 REST 调用的秘密,我只是不知道如何为项目生成 Oauth 凭据。

我正在使用 Java,Play 框架。我什至成功创建了服务帐户,但不知道如何生成 Oauth 凭据。

【问题讨论】:

  • 请澄清您的问题。除非使用 Google Cloud Console,否则您无法创建“客户端 ID/客户端密码”。创建客户端密码和使用 OAuth 是两个不同的主题。
  • 我的意思是当你生成 oauth 凭证时,你会得到客户端 ID 和客户端密码,但是生成 oauth 凭证不能自动化,它总是需要用户与云控制台 GUI 交互,比如设置 oauth 同意屏幕。我只需要一种获取客户端 ID 和客户端密码的方法,通过它我可以使用 goole oauth 库生成承载访问令牌,并将其传递给 REST 代理创建调用。
  • 从您之前的评论中,我了解到您想要获取包含客户端 ID、项目 ID、私钥等的服务帐户密钥,对吗?
  • 不,我需要获取 clientId 和客户端密码,在谷歌控制台中我们从凭据中获取它 => oauth 客户端 id => 选择其他,输入名称 => 生成 clientId 和密码。我想以某种方式自动化它。

标签: java google-cloud-platform oauth-2.0 cloud gcloud


【解决方案1】:

好吧,在做了更多研究之后,发现没有 API 或者无法以编程方式创建 oauth 凭据 clientId 和 client_sercret / client_secret.json 文件。必须从谷歌控制台本身创建它。

【讨论】:

    【解决方案2】:

    有多种方法可以调用 Google API (Dialogflow),其中一种是通过服务帐户。

    你提到你已经有created a Service Account

    接下来,您可以通过 Google API Client Library for Java 自动创建凭据,如提及 here

    最后只调用 Google API

    您可以找到 DialogFlow for Java 的完整文档here

    【讨论】:

    • 是的,我知道调用 google api 的方法有很多种,例如 API 密钥、服务帐户、oauth,但问题是创建代理 REST 调用 cloud.google.com/dialogflow/docs/reference/rest/v2/projects/… 需要发送 access_token,只能是使用 clientid 和 client secret 生成,client_secret.json 是在你的项目中设置 oauth creds 后生成的。这是为 REST 调用生成 access_token 的 java 代码,但它需要 client_secret.json 文件。
    猜你喜欢
    • 2014-07-02
    • 2013-01-23
    • 1970-01-01
    • 2019-10-17
    • 2017-01-26
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多