Cronjob错误:无法找到client_secret.json文件Google App Script

时间:2017-08-30 19:14:07

标签: google-apps-script

我编写了一个python脚本,每天将文件上传到我的Google云端硬盘。当我从终端运行脚本时,它完美地工作。但是,当它通过cronjob运行时,它会失败并返回以下错误:

oauth2client.clientsecrets.InvalidClientSecretsError :('错误打开文件',' client_secret.json','没有这样的文件或目录',2)

问题是该文件位于我运行脚本的目录中。

这是我的Cronjob代码:

15 6 * * * python3 /home/pi/directory/file.py

以下是调用client_secret.json文件的脚本:

def main():
    try:
        import argparse
        flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
    except ImportError:
        flags = None

    SCOPES = 'https://www.googleapis.com/auth/drive.file'
    store = file.Storage('storage.json')
    creds = store.get()
    if not creds or creds.invalid:
        flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
        creds = tools.run_flow(flow, store, flags) \
                if flags else tools.run(flow, store)
    DRIVE = build('drive', 'v3', http=creds.authorize(Http()))

任何想法或建议都会很棒!

1 个答案:

答案 0 :(得分:1)

您必须使用文件客户端_secret.json的绝对路径。一旦我更新了路径一切正常。

更改: flow = client.flow_from_clientsecrets('client_secret.json',SCOPES)

store = file.Storage('storage.json')

flow = client.flow_from_clientsecrets('/ path / to / file / client_secret.json',SCOPES)

store = file.Storage('/ path / to / file / storage.json')