Reputation: 77
I have a python script which sends an email via the Gmail api. When running the script manually, all works fine. However, when the script is run via a cronjob, the script fails with the following error:
/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))
I've the client_secret.json file in the same folder as the python script. Any suggestions would be much appreciated.
UPDATE
Update on this. I add the call to the python file in root's crontab. This has generated 2 new errors:
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
What's interesting here is the URL to click through to authorise my application to use gmail, now displays a code and I'm asked to switch to my application and enter it in there.
Upvotes: 0
Views: 1211
Reputation: 77
I resolved the issue by adding the call to the python file in root's crontab. Gmail prompts me to approve my applications use of gmail and then the script works as expected.
Upvotes: 0