Richie Close
Richie Close

Reputation: 77

Error thrown while using Gmail API

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

Answers (1)

Richie Close
Richie Close

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

Related Questions