Python gmail api:建立安全连接时出错

时间:2016-05-17 09:00:59

标签: python api gmail google-oauth

我试图让我的程序使用Gmail API

我按照谷歌关于Youtube的官方教程中提供的说明:https://www.youtube.com/watch?v=L6hQCgxgzLI并相应地

这是我的代码(仅包括授权):

from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
CLIENT_SECRET = 'client_secret.json'

store = file.Storage('storage.json')
creds = store.get()
if creds is None or creds.invalid:
    flow = client.flow_from_clientsecrets(CLIENT_SECRET, SCOPES)
    creds = tools.run(flow, store)
GMAIL = build('gmail', 'v1', http=creds.authorize(Http()))

但是,当我运行代码时,会发生以下情况

AttributeError: module 'oauth2client.tools' has no attribute 'run'

我哪里出错?

2 个答案:

答案 0 :(得分:0)

https://developers.google.com/gmail/api/quickstart/python#step_3_set_up_the_sample

如果标志:

credentials = tools.run_flow(flow,store,flags)

else:#仅需要与Python 2.6的兼容性

credentials = tools.run(flow,store)

答案 1 :(得分:0)

从tools.run()迁移到tools.run_flow() 这个迷你教程斜杠迁移指南slash PSA(公共服务公告)针对Python开发人员使用当前调用oauth2client.tools.run()的Google API客户端库(从他们的Python应用程序访问Google API),并可能获得弃用警告和/或考虑迁移到oauth2client.tools.run_flow(),它的替代品。

更新(2016年1月):run()函数本身已于2015年8月从客户端库中删除,因此如果您在此之后或之后使用任何版本,则从您的应用程序代码调用run()会抛出异常。这篇博文是在这种情况下为你们创建的,需要立即迁移。

http://wescpy.blogspot.fr/2015/04/migrating-from-toolsrun-to-toolsrunflow.html