首页 > 解决方案 > 有没有办法通过 Python 批量编辑用户权限/与数百个 Google 表格交互?

问题描述

我有大约 600 个谷歌表格,它们都非常相似,我需要从一个特定的列中获取值。我已经在 Google Developer 控制台中对应用进行了身份验证,因此我可以访问一张工作表。但是要这样做,我必须从工作表本身内部访问服务帐户。该服务帐户无权访问其他 599 张工作表,我宁愿不通过手动授予它访问每张工作表的权限。

有没有人有更好的方法来做到这一点,或者通过验证所有工作表的服务帐户,或者通过 python 访问数百个谷歌工作表的更好方法,这并不意味着我必须许可该帐户?如果有帮助,我的谷歌帐户可以访问所有工作表。

有一个谷歌,但无法弄清楚如何做到这一点!任何帮助表示赞赏。

标签: pythonpandasgoogle-sheetsgoogle-sheets-api

解决方案


您可以使用Permissions: create in Drive API 根据您的首选角色为特定文件创建新权限。

通过 API 资源管理器的示例请求:

FileId:要在其中添加新权限的工作表文件 ID

{
  "role": "writer",
  "type": "user",
  "emailAddress": "serviceaccount@email.com"
}

有关要使用的角色的更详细说明,请参阅此处。

由于您的 Google 帐户可以访问所有工作表,因此您只需获取所有工作表文件 id 的列表并循环每个 id 以使用您的 Google 帐户为您的服务帐户创建新权限。


附加参考:

Drive API Python 快速入门


推荐阅读