求助:解决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
相关产品推荐
相关产品推荐

