我试图让我的程序使用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'
我哪里出错?
答案 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