我有一个python脚本,通过Gmail api发送电子邮件。手动运行脚本时,一切正常。但是,当脚本通过cronjob运行时,脚本将失败并显示以下错误:
/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py:255:UserWarning:无法访问/root/.credentials/sendEmail.json:没有这样的文件或目录 warnings.warn(_MISSING_FILE_MESSAGE.format(文件名))
我将client_secret.json文件放在与python脚本相同的文件夹中。任何建议都会非常感激。
更新
对此进行更新。我在root的crontab中添加了对python文件的调用。这产生了2个新错误:
Failed to start a local webserver listening on either port 8080
or port 8090. Please check your firewall settings and locally
running programs that may be blocking or using those ports.
Falling back to --noauth_local_webserver and continuing with
authorization.
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.compose&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&client_id=611764062141-gccaftd5eh9ekk11nv4007uh7t2qlr09.apps.googleusercontent.com&access_type=offline
Enter verification code: Traceback (most recent call last):
File "/home/pi/python_scripts/glasses_scrape/glasses.py", line 174, in <module>
credentials = get_credentials()
File "/home/pi/python_scripts/glasses_scrape/glasses.py", line 165, in get_credentials
credentials = tools.run_flow(flow, store, flags)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oauth2client/tools.py", line 240, in run_flow
code = input('Enter verification code: ').strip()
EOFError: EOF when reading a line
这里有趣的是点击以授权我的应用程序使用gmail的URL,现在显示一个代码,我被要求切换到我的应用程序并在那里输入。
答案 0 :(得分:0)
我通过在root的crontab中添加对python文件的调用来解决这个问题。 Gmail提示我批准我的应用程序使用gmail,然后脚本按预期工作。