使用Python gspread,能否通过服务账号访问他人Google Sheets?
如何用gspread服务账号访问他人的Google Sheets
完全可以通过服务账号访问并操作他人账号下的Google Sheets,核心是完成服务账号授权操作,具体步骤如下:
- 获取服务账号邮箱:从你的服务账号密钥JSON文件中找到
client_email字段,格式通常为[账号标识]@[GCP项目ID].iam.gserviceaccount.com。 - 让表格拥有者授权:打开目标Google Sheets,点击右上角「共享」,将上述服务账号邮箱添加为协作者,根据需求设置权限(如「编辑者」「查看者」)。
- 正常编写gspread代码:用服务账号密钥初始化客户端后,即可直接访问目标表格,示例代码:
import gspread from google.oauth2.service_account import Credentials # 配置权限范围 SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] # 加载服务账号密钥文件 creds = Credentials.from_service_account_file('your-service-key.json', scopes=SCOPES) client = gspread.authorize(creds) # 通过表格ID访问目标表格 target_sheet = client.open_by_key('目标表格的ID') # 进行读写操作 worksheet = target_sheet.get_worksheet(0) worksheet.update_cell(1, 1, '测试写入内容')
注意事项
- 若出现访问被拒绝的错误,优先检查服务账号邮箱是否被正确共享,以及权限级别是否满足操作需求。
- 确保服务账号密钥文件路径正确,且文件未泄露给无关人员。
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

