我正在尝试GoogleAuth使用该pydrive库(https://pypi.python.org/pypi/PyDrive)自动化该过程.
我已经设置了pydrive和google API,以便我的secret_client.json工作,但每次运行我的脚本时都需要对gdrive访问进行Web身份验证:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
textfile = drive.CreateFile()
textfile.SetContentFile('eng.txt')
textfile.Upload()
print textfile
drive.CreateFile({'id':textfile['id']}).GetContentFile('eng-dl.txt')
Run Code Online (Sandbox Code Playgroud)
eng.txt只是一个文本文件.此外,当我登录到另一个帐户时,我尝试使用上面的脚本.它不会上传eng.txt到生成我的gdrive secret_client.json但是我授权身份验证时登录的帐户
从上一篇文章中,我尝试了以下内容来自动执行验证过程,但它给出了错误消息:
import base64, httplib2
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
#gauth = GoogleAuth()
#gauth.LocalWebserverAuth()
# from google API console - convert …Run Code Online (Sandbox Code Playgroud) 我想使用 Google Drive API 使用 cronjob 在其上存储一些备份。我只是不明白如何使用服务帐户使用 PyDrive。当我生成服务帐户文件时,我将它作为我的脚本放在目录中client_secret.json。
使用此代码:
#!/usr/bin/env python
# -*- coding: utf8 -*-
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
def main():
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile({'parent': 'toto'})
f.SetContentFile('test.drive.py')
f.Upload()
if __name__ == '__main__':
main(sys.argv[1:])
Run Code Online (Sandbox Code Playgroud)
结果
pydrive.settings.InvalidConfigError: Invalid client secrets file Invalid file format.
Run Code Online (Sandbox Code Playgroud)
好吧。然后我查看了关于 SO 的其他帖子,并找到了这两个:
Automate Verification Process
The code from the first answer on this question返回:
Traceback (most recent call last):
File "test.drive.py", line 4, in <module> …Run Code Online (Sandbox Code Playgroud)