【发布时间】:2023-03-14 16:15:01
【问题描述】:
我正在尝试使用 Google 表格 API 发出 POST 请求并更新我的表格。当我执行 GET 请求时,我的代码正在运行,但 POST 请求失败并出现以下错误:
API 返回错误:
错误:请求的身份验证范围不足
这是我的 POST 请求代码:
app.post('/', (req, res) => {
fs.readFile('credentials.json', (err, content) => {
if (err) return console.log('Error loading client secret file:', err)
authorize(JSON.parse(content), postTest)
})
function postTest(auth) {
const sheets = google.sheets({version: 'v4', auth})
sheets.spreadsheets.values.update({
spreadsheetId: 'spreadsheetId',
range: 'A5',
valueInputOption: 'Test',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err)
else {
console.log('%d cells updated.', result.updatedCells);
}
})
}
})
我的范围:
const SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
【问题讨论】:
-
能否提供函数
authorize()的脚本? -
你有没有改变过这个项目的范围?比如从
spreadsheets.readonly到当前作用域?这样做之后,您是否从相关目录中删除了任何序列化的凭证文件?请注意,所有更新请求 - 即使是公开的、匿名可写的电子表格 - 都需要使用 OAuth 访问令牌进行授权,而只需使用 API 密钥就可以充分授权读取。
标签: node.js authentication google-sheets-api google-api-nodejs-client