<p>如果没有您试图调试的实际代码,就很难回答这个问题。但这里有一些建议。如果您已经为Gmail API配置并下载了访问令牌,请尝试使用绝对路径而不是相对路径</p>
<p>如果您在生成令牌时遇到问题,可以尝试从命令行运行python代码,这样它将使用默认浏览器将您带到授权屏幕。我很难让jupyter笔记本使用我的浏览器打开授权屏幕</p>
<p>以下代码来自quickstart.py,它应该向您展示如何首先生成token.json:</p>
<pre><code>def main():
"""Shows basic usage of the Gmail API.
Lists the user's Gmail labels.
"""
creds = None
# The file token.pickle stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists('token.pickle'):
with open('token.pickle', 'rb') as token:
creds = pickle.load(token)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle', 'wb') as token:
pickle.dump(creds, token)
service = build('gmail', 'v1', credentials=creds)
</code></pre>