有什么方法可以让PyDrive记住用户的身份验证吗?

时间:2016-04-26 11:09:06

标签: python google-drive-api pydrive

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

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

每次我运行程序时都要验证我。有没有办法记住身份验证?

1 个答案:

答案 0 :(得分:0)

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

样品:

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

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

"username""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

更安全的选项是在{3.}中使用ConfigParserconfigparser)。

修改

登录Google云端硬盘需要在脚本目录中使用名为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)

希望这会有所帮助(问问,如果事情不够清楚的话)!