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

如何通过Python将服务账号创建的Google Sheet所有权转移至个人账号?

解决Google Sheet所有权转移的403错误

需要修改的核心内容:

  • 将权限体中的role从'writer'改为'owner':转移所有权必须指定角色为所有者,writer角色不具备触发所有权转移的权限。
  • 修正transferOwnership的值类型:把字符串'true'改为布尔值True,Drive API要求该字段为布尔类型而非字符串。
  • 移除pendingOwner字段:当调用接口时指定transferOwnership=True,API会自动处理待确认所有者的流程,无需手动设置该字段。

修改后的完整代码:

from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file('credentials.json')

service = build('drive', 'v3', credentials=creds)

permission = {
    'type': 'user',
    'role': 'owner',  # 修改为owner角色
    'transferOwnership': True,  # 改为布尔值类型
    'emailAddress': new_owner_email
}

service.permissions().create(
    fileId=sheet_id,
    body=permission,
    transferOwnership=True
).execute()

后续操作说明:

代码执行成功后,目标个人账号会收到Google Drive发送的所有权转移邀请邮件,需手动点击邮件中的链接接受邀请,才能完成最终的所有权变更。完成后,原服务账号将不再拥有该Google Sheet的所有权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:37:29