为什么在此示例中使用OAuth2WebServerFlow?

时间:2016-08-01 21:59:14

标签: google-api-python-client

在描述如何构建命令行客户端以访问在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发布的示例实际上是不正确的吗?

1 个答案:

答案 0 :(得分:1)

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

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

获取授权网址,获取授权和存储凭据的实际过程都在tools.run_flow

内完成

在博客中,他们正在自己的代码中完成所有这些工作。他们还要求用户复制和粘贴授权代码,这在Google示例中自动完成。

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

修改:此外,flow_from_clientsecrets会返回OAuth2WebServerFlow个对象,但还有其他错误检查,不在Google示例中。