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

求助:解决Google Sheets API请求认证权限不足(403)错误

解决Google Sheets API 403权限范围不足的问题

问题核心

你遇到的ACCESS_TOKEN_SCOPE_INSUFFICIENT错误,本质是当前认证凭证未包含访问Google Sheets所需的权限范围,且之前的修改未应用到实际运行的函数,旧凭证缓存也导致权限未更新。

解决方案

1. 修正代码权限范围配置

你之前修改的是append_values函数,但实际运行的是get_values,需将权限范围配置到正确的函数中。以下是修正后的完整代码:

from __future__ import print_function

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# 仅读取表格用readonly范围即可,降低权限风险
SCOPES = [
    'https://www.googleapis.com/auth/spreadsheets.readonly',
]

def get_values(spreadsheet_id, range_name):
    # 获取凭证时传入指定权限范围
    creds, _ = google.auth.default(scopes=SCOPES)
    try:
        service = build('sheets', 'v4', credentials=creds)

        result = service.spreadsheets().values().get(
            spreadsheetId=spreadsheet_id, range=range_name).execute()
        rows = result.get('values', [])
        print(f"{len(rows)} rows retrieved")
        return result
    except HttpError as error:
        print(f"An error occurred: {error}")
        return error


if __name__ == '__main__':
    get_values("1CM29gwKIzeXsAppeNwrc8lbYaVMmUclprLuLYuHog4k", "A1:C2")

2. 刷新应用默认凭证

旧凭证缓存可能仍在使用无权限的token,需清除并重新获取:

  • 删除旧凭证文件:rm ~/.config/gcloud/application_default_credentials.json
  • 重新登录获取新凭证:gcloud auth application-default login
  • 执行后会弹出浏览器窗口,确认授权新的权限范围。

3. 确认表格共享权限

确保你登录的Google账号拥有目标表格的访问权限:

  • 打开目标表格,检查右上角的共享设置,确认你的账号被添加为查看者或编辑者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:45:37