2016-08-01 46 views
2

在其docs描述如何构建命令行客户端来访问App Engine端点发布的API时,Oauth2WebServerFlow用于获取flow对象以用于获取凭据。我无法弄清楚如何将它用于命令行应用程序。为什么在这个例子中使用了OAuth2WebServerFlow?

花费数小时试图找出为什么我甚至设法获得使用公布的例子凭据后,仍然得到401错误后,我所在a nice page包含以下工作代码:

flow = oauth2client.client.flow_from_clientsecrets(
     'client_secret.json', # downloaded file 
     'https://www.googleapis.com/auth/userinfo.email' # scope 
     redirect_uri='urn:ietf:wg:oauth:2.0:oob') 

的出版商的例子谷歌其实不正确?

回答

1

他们正在展示授予授权的不同方法。

在Google示例中,您必须获取client_idclient_secret字符串,并将它们分别分配给变量CLIENT_IDCLIENT_SECRET。在这个例子中,它们只是空的字符串。

获得授权URL,获取授权和存储凭证的实际过程都在tools.run_flow

做在博客上,他们正在做在自己的代码了这一切。他们还要求用户复制和粘贴授权代码,这是在Google示例中自动完成的。

您是否收到任何错误消息或失败?

编辑:此外,flow_from_clientsecrets返回一个OAuth2WebServerFlow对象,但具有其他错误检查,但不在Google示例中。

+0

你说得对。我再次尝试了一次,现在我知道发生了什么,并且Google的例子完美无缺。这确实是最好的,因为它不要求您从浏览器复制/粘贴授权码。 –

相关问题