javascript读取谷歌表格value.getBatch问题

问题描述 投票:0回答:1

我可以使用 javascript fetch() 读取谷歌表格单个值,没有问题。但是,当尝试读取多个范围时,会出现错误 403。

这段代码运行良好:

const apiKey = 'key-here'; 
const spreadsheetId = 'sheet-id-here';
const sheetName = 'Sheet1';

values = values = fetch(`https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${sheetName}?key=${apiKey}`)
.then(response => response.json())
.then (data => console.dir (data))
.catch(error => console.error('Google Sheet Reading Error: ', error));

但是当用values.getBatch替换fetch()时,浏览器的检查面板显示错误403:

values = fetch(`https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values:batchGet?ranges=Sheet1!A1:A2&ranges=subtitle!B1:B2?key=${apiKey}`)

错误是:

code: 403
message: "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API."
status: "PERMISSION_DENIED"

有关值的文档:getBatch 位于 https://developers.google.com/sheets/api/samples/reading

javascript api fetch google-sheets-api
1个回答
0
投票

修改要点:

  • 在你的脚本中,我认为

    ?
    ?key=${apiKey}
    应该是
    &
    。我认为这就是您当前问题
    PERMISSION_DENIE
    的原因。

  • 另外,请按如下方式进行URL编码。

    • https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values:batchGet?ranges=Sheet1!A1%3AA2&ranges=subtitle!A1%3AA2&key=${apiKey}

当这些点反映在你的脚本中时,就会变成如下所示。

修改后的脚本:

values = fetch(`https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values:batchGet?ranges=Sheet1!A1%3AA2&ranges=subtitle!A1%3AA2&key=${apiKey}`)
© www.soinside.com 2019 - 2024. All rights reserved.