2017-06-05 110 views
0

我有一个通过Gmail api发送电子邮件的python脚本。手动运行脚本时,一切正常。然而,当脚本通过一个cronjob运行,该脚本将失败,并出现以下错误:使用Gmail API时引发错误

/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access /root/.credentials/sendEmail.json: No such file or directory warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

我在同一文件夹中的python脚本的client_secret.json文件。任何建议将不胜感激。

UPDATE

对此的更新。我将该调用添加到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

似乎是一个问题。你有没有试过移动文件或以root身份运行它? – Artyer

+0

只是在相同的目录是不够的。 –

+0

Hi @Artyer - 你的意思是python文件吗? crontab如下:21 20 * * * sudo python /home/pi/python_scripts/glasses_scrape/glasses.py> /home/pi/ipsender.log 2>&1 –

回答

0

我通过将调用添加到root的crontab中的python文件来解决问题。 Gmail提示我批准我的应用程序使用Gmail,然后脚本按预期工作。