我有一个小的Python脚本,它收集一些数据并使用Gmail API将其发送到电子邮件中。我的目标是将此脚本放在我的树莓派上,创建一个每日cronjob来调用它,并忘记它。然而,我进行谷歌身份验证的方式阻止了我自动化它。目前,我必须使用浏览器进行身份验证(用户需要按下允许按钮),然后我可以使用凭据几天,然后它们会过期,需要再次输入用户。如何使其仅验证一次,然后开始自动刷新其凭据?
当前代码:
当前代码:
def get_creds():
creds = None
if os.path.exists(os.path.join(dir,'token.json')):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
print("refreshing")
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
os.path.join(dir,'credentials.json'), SCOPES)
creds = flow.run_local_server(port=0)
with open(os.path.join(dir,'token.json'), 'w') as token:
token.write(creds.to_json())
return creds