我正在使用OAuth,用于登录Gmail帐户并通过python脚本发送电子邮件。 我已经下载了client_secret.json文件,该文件存储在C:\ Users \ anuj.masand \(主文件夹)中。 运行Python脚本时,出现以下错误:
oauth2client.clientsecrets.InvalidClientSecretsError: ('Error opening file', 'client_secret.json', 'No such file or directory', 2)
我可以看到该文件在需要脚本的地方不可用。 我已经阅读了clientsecrets.py文件,并了解了以下代码来加载该文件。
def _loadfile(filename):
try:
with open(filename, 'r') as fp:
obj = json.load(fp)
except IOError as exc:
raise InvalidClientSecretsError('Error opening file', exc.filename,
exc.strerror, exc.errno)
return _validate_clientsecrets(obj)
我的代码正跳到异常部分。 我的问题是在哪里存储client_secret.json文件?以便解释器可以找到文件并继续前进。 python在哪里真正寻找该文件?
参考:Script
答案 0 :(得分:2)
根据此quickstart guide,您将下载的文件移到您的工作目录。使用名为credentials.json
的文件,该指南将文件的读取方式实现为:
# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))
请确保文件名完全匹配。