Python 谷歌API(gmail和电子表格):我还应该设置什么,或者了解我的设置';我失踪了?

Python 谷歌API(gmail和电子表格):我还应该设置什么,或者了解我的设置';我失踪了?,python,google-apps-script,gmail-api,google-spreadsheet-api,Python,Google Apps Script,Gmail Api,Google Spreadsheet Api,我正在创建一个webapp,其中包括一些cron作业,它们将调用gmailapi和google电子表格API 我已经在我的google开发者deashboard中创建了一个项目,并提供了该项目的凭据,用于我的应用程序 我还在控制台中启用了gmailapi和googlesheetsapi 我正在使用Python库,调用这两个API都失败了 例如,电子表格服务抛出以下错误: /home/vardelean/work/connect-app/ty/connect/commands/populate_m

我正在创建一个webapp,其中包括一些cron作业,它们将调用gmailapi和google电子表格API

我已经在我的google开发者deashboard中创建了一个项目,并提供了该项目的凭据,用于我的应用程序

我还在控制台中启用了
gmailapi
googlesheetsapi

我正在使用Python库,调用这两个API都失败了

例如,电子表格服务抛出以下错误:

/home/vardelean/work/connect-app/ty/connect/commands/populate_matching_spreadsheet.pyc in iterate_google_spreadsheet(document_id, spreadsheet_service)
    300         unmatched_hotels_document = spreadsheet_service.values().get(
    301                         spreadsheetId=document_id,
--> 302                         range='Sheet1'
    303         ).execute()["values"]
    304                 header = unmatched_hotels_document[0]

/home/vardelean/ve/connect/local/lib/python2.7/site-packages/oauth2client/util.pyc in positional_wrapper(*args, **kwargs)
    135                 elif positional_parameters_enforcement == POSITIONAL_WARNING:
    136                     logger.warning(message)
--> 137             return wrapped(*args, **kwargs)
    138         return positional_wrapper
    139 

/home/vardelean/ve/connect/local/lib/python2.7/site-packages/googleapiclient/http.pyc in execute(self, http, num_retries)
    830       callback(resp)
    831     if resp.status >= 300:
--> 832       raise HttpError(resp, content, uri=self.uri)
    833     return self.postproc(resp, content)
    834 

HttpError: <HttpError 403 when requesting https://sheets.googleapis.com/v4/spreadsheets/...document id here...../values/Sheet1?alt=json returned "The caller does not have permission">
/home/vardelean/work/connect app/ty/connect/commands/populate\u matching\u spreadsheet.pyc in iterate\u google\u电子表格(文档id,电子表格服务)
300个不匹配的\u hotels\u document=电子表格\u service.values().get(
301电子表格id=文件id,
-->302范围class='Sheet1'
303).执行()[“值”]
304页眉=不匹配的\u文档[0]
/位置包装中的home/vardelean/ve/connect/local/lib/python2.7/site-packages/oauth2client/util.pyc(*args,**kwargs)
135 elif位置参数执行==位置警告:
136.警告(信息)
-->137返回包裹(*args,**kwargs)
138返回位置包装器
139
/home/vardelean/ve/connect/local/lib/python2.7/site-packages/googleapiclient/http.pyc in execute(self、http、num_重试)
830回拨(resp)
831如果响应状态>=300:
-->832引发HttpError(resp,content,uri=self.uri)
833返回自我过程后(响应,内容)
834
HttpError:
我不知道缺乏权限意味着什么。我试图在以该用户身份登录时访问该文件,并且我确实拥有该文件的编辑权限。如前所述,我还启用了Google电子表格API

还有Gmail服务这一项:

File "/home/vardelean/work/connect-app/ty/connect/commands/vwh_test_google_apis.py", line 31, in <module>
    main()
  File "/home/vardelean/work/connect-app/ty/connect/commands/vwh_test_google_apis.py", line 23, in main
    for message_meta in message_list.execute().get('messages', []):
  File "/home/vardelean/ve/connect/local/lib/python2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/home/vardelean/ve/connect/local/lib/python2.7/site-packages/googleapiclient/http.py", line 832, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/messages?labelIds=INBOX&alt=json returned "Mail service not enabled">
文件“/home/vardelean/work/connect-app/ty/connect/commands/vwh\u test\u google\u api.py”,第31行,在
main()
文件“/home/vardelean/work/connect-app/ty/connect/commands/vwh\u test\u google\u api.py”,第23行,在main中
对于message_list.execute().get('messages',[])中的message_meta:
文件“/home/vardelean/ve/connect/local/lib/python2.7/site packages/oauth2client/util.py”,第137行,在位置包装中
已包装退货(*args,**kwargs)
文件“/home/vardelean/ve/connect/local/lib/python2.7/site packages/googleapiclient/http.py”,第832行,在execute中
raise HttpError(resp,content,uri=self.uri)
GoogleAppClient.errors.HttpError:
…我不知道“未启用邮件服务”是什么意思,因为我确实在开发控制台中启用了它

此外,我还检查了一个空凭证文件会出现什么错误(例如),至少对于gmail服务来说,这是另一个错误,因此凭证在某种程度上必须是好的。该错误是
RuntimeError:无法使用存储在//path/to/bad/credentials/file中的凭据进行授权


有人能帮上忙吗?

您可能想尝试设置为
true
,如本文所述,也可在本文中进行注释

如所给出的示例中所述:

isMailboxSetup
指示是否创建了用户的谷歌邮箱。此属性仅在用户已被分配Gmail许可证时适用


谢谢问题并非如此。收件箱是以前创建的,但我创建的凭据似乎不正常。“凭证”是指私有凭证(我认为它们被称为客户机机密),我将从中创建另一个凭证文件,用于验证API调用。我还没有弄清楚是什么错,但似乎创建新的凭据是有效的(新的私有凭据或客户端机密,以及来自它们的新api凭据)。