2017-06-05 7 views
0

Ich habe ein Python-Skript, das eine E-Mail über die Gmail API sendet. Wenn das Skript manuell ausgeführt wird, funktioniert alles einwandfrei. Wenn jedoch das Skript über einen Cronjob ausgeführt wird, schlägt das Skript mit dem folgenden Fehler:Fehler bei der Verwendung von 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))

Ich habe die client_secret.json-Datei im selben Ordner wie der Python-Skript. Irgendwelche Vorschläge würden sehr geschätzt.

UPDATE

Aktualisierung zu diesem Thema. Ich füge den Aufruf der Python-Datei in der Crontab von root hinzu. Dies hat zwei neue Fehler generiert:

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 

Interessant ist hier die URL meiner Anwendung durchklicken zu genehmigen gmail zu verwenden, zeigt jetzt ein Code und ich gebeten, meine Anwendung zu wechseln und geben Sie es in .

+0

Scheint wie ein Permisions-Problem. Haben Sie versucht, die Datei zu verschieben oder als root auszuführen? – Artyer

+0

Nur im selben Verzeichnis zu sein ist nicht genug. –

+0

Hi @Artyer - meinst du die Python-Datei? Die crontab ist wie folgt: 21 20 * * * sudo python /home/pi/python_scripts/glasses_scrape/glasses.py> /home/pi/ipsender.log 2> & 1 –

Antwort

0

Ich löste das Problem, indem ich den Aufruf der Python-Datei in root's Crontab hinzufügte. Google Mail fordert mich auf, die Verwendung von Google Mail für Anwendungen zu genehmigen, und das Skript funktioniert dann wie erwartet.

Verwandte Themen