2016-10-21 37 views
0

有一项服务可以使用他们的Google帐户进行授权。 我需要使用该服务自动化工作流程,因此我的软件必须使用特定的Google帐户登录。 但是,我从来没有这样做过,我不知道从哪里开始。大多数相关的答案建议向用户显示授权页面,让他们输入他们的Google帐户的登录名/密码,但情况并非如此,因为我的软件必须是完全自动化的,而且它正在终端模式下运行,因此没有浏览器任何人都应该参与进来。以编程方式使用Google +帐户登录

我不知道这样的自动化是否可能,我应该从哪里开始。

+0

的可能的复制http://stackoverflow.com/q/13317987/121660 – captncraig

+0

这个回答表明,制作一个简单的Web服务器来执行[OAuth的流量(https://开头developers.google.com/+/web/api/rest/oauth),直到获得刷新令牌。然后,您可以将刷新令牌提供给命令行应用程序以交换有效的访问令牌。一种奔跑,但它是。 – captncraig

+0

@ captncraig抱歉,我不认为你就在这里。是的,问题是类似的,但除了运行Web服务器并且要求用户始终输入密码之外,我找不到任何答案。 – Gonzalez

回答

0

用谷歌身份验证用户的标准方法是通过三脚oauth身份验证流程(在浏览器中)。您可以使用oauth2或用更全面的一揽子像goth

的一般流程是在去做到这一点:

  1. 将用户重定向到提示他们授予您访问谷歌的网站着陆页。
  2. 谷歌将使用特殊代码回拨您的网站。
  3. 您提出另一个请求,以交换访问令牌和刷新令牌的代码。
  4. 使用访问令牌来使用谷歌apis,并使用刷新令牌来获得一个新的访问令牌。

它比这更详细,有很多事情要保证它的安全,但这是一般的想法。

现在,正如你所说,你的应用程序是命令行的东西,所以很难做到这一点。不幸的是,您可能需要这样做一次,以获取刷新令牌。一旦你有了,你可以把它给你的应用程序:myapp -google-token=FOOBAR123,你的应用程序可以交换referesh标记为有效的访问令牌。

也许这将帮助:https://github.com/burnash/gspread/wiki/How-to-get-OAuth-access-token-in-console%3F

相关问题