微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果我在 pydrive 中使用服务帐户,为什么我需要刷新令牌?

如何解决如果我在 pydrive 中使用服务帐户,为什么我需要刷新令牌?

我正在使用 pydrive 将一些文件上传到我的驱动器。我使用以下方法进行身份验证:

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    settings.GOOGLE_API_SERVICE_ACCOUNT,scopes
)


pydrive_auth = GoogleAuth()
pydrive_auth.credentials = credentials
drive = GoogleDrive(pydrive_auth)
....

一段时间后,显然 pydrive 尝试刷新访问令牌并尝试查找我的服务器上不存在的 client_secret.json,因此导致它失败。如果我使用的是服务帐户,为什么要尝试刷新访问令牌?我认为服务帐户不需要令牌。代码中是否缺少某些内容,或者我是否需要添加此缺少的文件

解决方法

服务帐户不需要刷新令牌。

刷新令牌由用户授予您,让您可以在他们不在线时访问他们的数据。

服务帐户已获得预授权,它们始终具有访问权限,从某种意义上说,如果您想以这种方式查看它们,则它们是永久的刷新令牌。

gauth = GoogleAuth()
scope = ['https://www.googleapis.com/auth/drive']
gauth.credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_FILE,scope)
drive = GoogleDrive(gauth)

my_file = drive.CreateFile({'id': 'FILE_ID'}) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。