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

Google Sheets API请求返回HttpError 403超出分享配额问题求助

Google Sheets导出程序403共享配额超限错误解决方案

错误原因

该错误是Google Drive共享操作配额超限触发的,核心问题是你每次运行程序都会调用driveService.permissions().create()接口给服务账号重复授予表格权限,这类共享操作有调用频率限制,高频重复调用就会触发报错,且重复授权本身属于多余操作。

解决方法

  • 移除重复的权限创建逻辑
    只需要给服务账号授权一次即可:你可以直接打开对应Google Sheets,点击右上角「共享」,把服务账号邮箱account@requests-329915.iam.gserviceaccount.com添加为编辑者,之后代码里可以完全删除Drive服务初始化、权限创建的相关代码,不需要每次运行都调用共享接口。
  • 控制共享操作调用频率
    如果你确实有批量共享表格的业务需求,可以在每次调用共享接口后添加1~2秒的等待延时,避免短时间内请求过于集中触发限速,示例如下:
    import time
    # 每次调用共享接口后添加延时
    access = driveService.permissions().create(
        fileId = spreadsheetId,
        body = {'type': 'user', 'role': 'writer', 'emailAddress': 'account@requests-329915.iam.gserviceaccount.com'},  
        fields = 'id'
    ).execute()
    time.sleep(2)
    
  • 调整配额上限
    如果业务侧确实需要高频调用共享接口,可以进入Google Cloud控制台对应项目的Drive API配额管理页,查看当前配额上限,符合要求的情况下可以提交配额提升申请。

修复后参考代码

import httplib2
import apiclient.discovery
from oauth2client.service_account import ServiceAccountCredentials

# 表格相关操作
CREDENTIALS_FILE = 'file_name.json' 
credentials = ServiceAccountCredentials.from_json_keyfile_name(CREDENTIALS_FILE, ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive'])
httpAuth = credentials.authorize(httplib2.Http())
# 选择使用sheets v4版本API
service = apiclient.discovery.build('sheets', 'v4', http = httpAuth) 

spreadsheetId = '1oXzqYQ9HixjfkTJ7hmIVqrM7_uvYwPsHoEKqPdbaAgk' 
# 已删除多余的权限创建代码,手动授权后可直接调用sheets接口操作表格

内容的提问来源于stack exchange,提问作者Руслан Руслан

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:03