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 .
Scheint wie ein Permisions-Problem. Haben Sie versucht, die Datei zu verschieben oder als root auszuführen? – Artyer
Nur im selben Verzeichnis zu sein ist nicht genug. –
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 –