Google API quickstart.py错误KeyError:'_ module'

Eli*_*ens 31 python google-api gmail-api

使用Gmail API.我的客户端密码文件已下载并适用于Ruby.当我尝试quickstart.py(python)版本时,我收到此错误

File "quickstart.py", line 70, in <module>
    main()
  File "quickstart.py", line 55, in main
    credentials = get_credentials()
  File "quickstart.py", line 38, in get_credentials
    credentials = store.get()
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 374, in get
    return self.locked_get()
  File "/Library/Python/2.7/site-packages/oauth2client/file.py", line 79, in locked_get
    credentials = Credentials.new_from_json(content)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 281, in new_from_json
    module = data['_module']
KeyError: '_module'
Run Code Online (Sandbox Code Playgroud)

我根本没有更改文件,只是将client_secret.json添加到该工作目录并安装了google-api-python-client.我的python代码来自这里:https://developers.google.com/gmail/api/quickstart/python

Mat*_*att 11

oauth2client正在尝试从结构不正确的json文件加载凭据.

也许Ruby客户端使用不同的文件格式,但我会感到惊讶.你确定你没救了client_secret.json~/.credentials/gmail-quickstart.json意外?

无论如何,删除~/.credentials/gmail-quickstart.json和重新验证将生成具有正确结构的新凭证文件.

  • 我刚刚使用了谷歌给我的确切结构,文件仍然不被接受 - 还有更多的建议吗? (3认同)

小智 8

尝试更换creds = store.get()creds = None暂时的.如果这样做,您可以重构代码以始终从基于流的凭据实例化开始.这对我有用.Google的示例似乎与他们的oauth2客户端不同步.