4

我使用 Python 和 PyDrive 制作了一个程序。该程序捕获图像并将其上传到 Google Drive 上的文件夹。这是我的身份验证和上传的基本代码:

gauth = GoogleAuth()
drive = GoogleDrive(gauth)
file_image = drive.CreateFile({"parents":  [{"kind": "drive#fileLink","id": upload_folder_id}]})
file_image.SetContentFile(imageName) #Set the content to the taken image
file_image.Upload() # Upload it

任何时候我运行它想要验证我的程序。有没有办法记住身份验证?

4

1 回答 1

0

在 Google Drive 的网络界面中,cookie 用于记住身份验证。我建议每次使用脚本时从配置文件中读取登录信息并登录。您可以使用eval()它,但请记住,eval()它是邪恶的 :)(如果脚本仅供您使用,没关系)。

样本:

在脚本所在的同一文件夹中创建一个名为login.conf(或类似)的文件。将其放入其中:

{"user": "username", "pass": "password"}

"username"and替换"pasword"为您的真实值,但保留". 在你的脚本中,这样做:

with open("login.conf", "r") as f:
    content = eval(f.read())

username = content["user"]
password = content["pass"]

# Now do login using these two variables

更安全的选择是使用ConfigParser(configparser在 Python 3.x 中)。

编辑:

看起来登录到 Google Drive 需要client_secrets.json在脚本目录中调用一个文件。如果你有它,请像这样登录:

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

gauth.LoadCredentialsFile("credentials.txt")
if gauth.credentials is None:
    gauth.LocalWebserverAuth()
elif gauth.access_token_expired:
    gauth.Refresh()
else:
    gauth.Authorize()

gauth.SaveCredentialsFile("credentials.txt")

drive = GoogleDrive(gauth)

希望这会有所帮助(问,如果有什么不够清楚)!

于 2016-04-26T12:48:09.450 回答