在描述如何构建命令行客户端以访问在App Engine端点发布的API的docs中,Oauth2WebServerFlow
用于获取要用于的flow
对象获得证书。我无法弄清楚如何将它用于命令行应用程序。
在花费数小时试图找出为什么我仍然在使用已发布的示例获取凭据后仍然会收到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')
Google发布的示例实际上是不正确的吗?
答案 0 :(得分:1)
他们正在展示不同的授权方法。
在Google示例中,您必须获取client_id
和client_secret
个字符串,并将它们分别分配给变量CLIENT_ID
和CLIENT_SECRET
。在示例中,它们只是空字符串。
获取授权网址,获取授权和存储凭据的实际过程都在tools.run_flow
在博客中,他们正在自己的代码中完成所有这些工作。他们还要求用户复制和粘贴授权代码,这在Google示例中自动完成。
您收到任何错误消息或失败吗?
修改:此外,flow_from_clientsecrets
会返回OAuth2WebServerFlow
个对象,但还有其他错误检查,不在Google示例中。