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

Chrome扩展调用谷歌API时GET请求正常POST返回401如何解决

问题根因

Google Sheets API 的 API Key 仅支持只读权限的公共资源访问,你GET请求能成功是因为对应电子表格设置了「任何人只要有链接即可查看」的公开权限,仅读取操作不需要额外的身份授权。但追加/修改数据属于写入操作,仅靠API Key无法完成身份校验和权限验证,因此返回401未授权错误。

需要补充的配置项
  • 更换认证方式:写入操作必须使用 OAuth 2.0 授权,你需要在Chrome扩展的manifest.json中声明oauth2权限,配置Google Cloud项目对应的客户端ID,同时申请https://www.googleapis.com/auth/spreadsheets的接口作用域,完成用户授权后获取访问令牌(access token)。
  • 补充请求头配置:在fetch的请求参数中添加headers字段,将授权得到的access token放入授权头,同时声明请求体格式:
let fetch_options = {
  "method": "POST",
  "headers": {
    "Authorization": `Bearer ${ACCESS_TOKEN}`,
    "Content-Type": "application/json"
  },
  "body": JSON.stringify({
    "values": [
      ["Door", "$15", "2", "3/15/2016"],
      ["Engine", "$100", "1", "3/20/2016"],
    ]
  })
};
  • 修正接口请求URL:Append接口必须携带必填查询参数valueInputOption(可选值为RAW/USER_ENTERED,RAW表示直接写入原始内容,USER_ENTERED会按照用户手动输入的规则自动解析数字、日期格式),使用OAuth认证后不需要再携带API Key,正确的URL格式如下:
let fetch_url = `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/Teachers!A7:D8:append?valueInputOption=USER_ENTERED`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:45:03