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

使用服务账号在Google Drive创建快捷方式突发403 Forbidden错误

问题描述

我用Python代码在Drive文件夹中创建指向另一文件夹(暂称“folder X”)的快捷方式,原本运行正常,突然触发如下报错:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files?alt=json returned "Forbidden". Details: "[{'message': 'Forbidden', 'domain': 'global', 'reason': 'forbidden'}]">

此前正常使用的服务账号JSON认证密钥文件突然出现这个Forbidden提示,我无法确定原因。想请教:问题出在哪里?如何让服务账号通过该JSON密钥重新获得folder X的访问权限?

目前临时解决办法是复制“folder X”并创建新的同名文件夹,之后代码就能正常运行,但这并非长久之计。

可能的原因及解决方法
  • folder X的共享权限被修改:大概率是有人移除了服务账号对folder X的访问权限。找到JSON密钥文件中的client_email字段,打开folder X的共享设置,确认该邮箱是否在共享列表中,且拥有至少查看者权限(创建快捷方式需要最低查看权限)。
  • 服务账号的项目权限被变更:检查Google Cloud控制台,确认服务账号所在项目的Drive API是否仍处于启用状态,同时确保服务账号拥有Drive File Viewer或更高等级的角色权限。
  • folder X被移入受限组织单元:如果你的Drive属于企业/教育域,folder X可能被移动到了限制外部服务账号访问的组织单元,联系域管理员确认该文件夹的组织单元权限配置。
  • API配额超限:部分情况下,配额超限也会触发类似Forbidden提示。进入Google Cloud控制台的Drive API配额页面,确认是否超出调用限制。

重新授权步骤:

  1. 从creds.json中提取服务账号的邮箱地址(client_email字段);
  2. 打开folder X的共享设置,添加该邮箱并设置为查看者或更高权限;
  3. 等待数分钟让权限生效后,重新运行代码。
相关代码
def Functie_Maak_Snelkoppeling(snelkoppeling_map, listing_map, shortcut_name):
    
    creds = service_account.Credentials.from_service_account_file('C:/.../creds.json')

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

    file_metadata = {
        'name': shortcut_name,
        'mimeType': 'application/vnd.google-apps.shortcut',
        'parents': [listing_map],
        'shortcutDetails': {
            'targetId': snelkoppeling_map     
        }
        
    }
    service.files().create(body=file_metadata).execute()

内容的提问来源于stack exchange,提问作者Pieter-Jan Roex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:24