从Cron Python / Google API运行不会接受存储的凭据文件,但会从命令行接受

时间:2015-04-14 16:24:12

标签: python cron token credentials google-api-python-client

所以我有一个我认为是一个功能正常的Python脚本,可以访问存储的Google Oauth Credentials文件。

当我跑步时:

source /METRICS/VIRTUALENVS/google/venv/bin/activate; export LD_LIBRARY_PATH='/usr/lib/oracle/11.2/client64/lib'; /METRICS/GOOGLESTATS/get_report_2.py

它很有名。

在python中有一个块,用于检查存储文件中的凭据:

#get google storage object
storage = Storage('cred_storage.txt')
credentials = storage.get()

#check if credentials are valid If not send to web page for new key.
if not credentials:
    flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
    authorize_url = flow.step1_get_authorize_url()
    print 'Go to the following link in your browser: ' + authorize_url
    code = raw_input('Enter verification code: ').strip()
    credentials = flow.step2_exchange(code)
    storage.put(credentials)
    mysendmail('Re authentication of credentials necessary')
    exit()

一切都很好但是如果我从本地用户crontab运行相同的东西,凭据就会失败,就像凭据文件不可读一样。

我很难理解为什么与CRON运行命令与命令行的区别。

只是为了获取信息,当凭据无法读取时,我会收到“转到URL”消息。

我对凭据文件的权限是0755,所有者是本地crontab的用户。

由于

1 个答案:

答案 0 :(得分:1)

好的,这是一个ID-10-T问题。 从命令行移动到cron时忘记设置工作目录。

杜!

向前和向上