You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过gspread Google API获取共享用户邮箱及权限列表?

如何通过gspread获取谷歌表格的共享用户及权限列表

可以通过gspread提供的list_permissions()方法获取目标谷歌表格的所有共享权限信息,该方法会返回实时的权限列表(包括后续其他编辑者新增的共享用户),你可以将结果整理成字典或分组列表用于核对。

具体实现代码

在你现有的代码基础上,添加以下逻辑即可:

import gspread as gs

gc = gs.service_account_from_dict(JSON_KEY)

# 创建表格并配置工作表(你的原有代码)
spreadsheet = gc.create('new_spreadsheet')
ws = spreadsheet.add_worksheet(title='new_worksheet', rows='100', cols='12')
spreadsheet.del_worksheet(spreadsheet.worksheet('Sheet1'))

std_writers = ['email_1@email.com', 'email_2@email.com', 'email_3@email.com', 'email_4@email.com']
std_viewers = ['email_5@email.com', 'email_6@email.com', 'email_7@email.com', 'email_8@email.com']

for writer in std_writers:
    spreadsheet.share(email_address=writer, perm_type='user', role='writer')
        
for viewer in std_viewers:
    spreadsheet.share(email_address=viewer, perm_type='user', role='reader')

# ------------------- 获取共享权限的核心代码 -------------------
# 获取所有共享权限条目
permissions = spreadsheet.list_permissions()

# 整理为「邮箱:权限」的字典
shared_users_dict = {}
for perm in permissions:
    # 过滤非用户类型的共享(比如域共享)
    if perm.get('type') == 'user' and 'emailAddress' in perm:
        shared_users_dict[perm['emailAddress']] = perm['role']

# 打印核对结果
print("所有共享用户及对应权限:")
for email, role in shared_users_dict.items():
    print(f"- {email}: {role}")

# 可选:按权限分组整理
writers_group = [p['emailAddress'] for p in permissions if p.get('role') == 'writer' and p.get('type') == 'user']
readers_group = [p['emailAddress'] for p in permissions if p.get('role') == 'reader' and p.get('type') == 'user']

print("\n编辑权限用户列表:", writers_group)
print("查看权限用户列表:", readers_group)

关键说明

  1. list_permissions()返回的每个权限条目是一个字典,核心字段包括:
    • emailAddress:共享目标的邮箱(仅用户类型共享存在该字段)
    • role:权限角色,常见值为writer(编辑)、reader(查看)
    • type:共享类型,比如user(单个用户)、domain(域共享)
  2. 该方法会返回实时的共享状态,即使其他拥有编辑权限的用户新增了共享,调用此方法也能获取到最新结果。
  3. 确保你的服务账号拥有目标表格的所有者或管理权限,否则可能无法获取完整的权限列表。

内容的提问来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:12:59