POST请求失败,验证范围不足,而GET请求成功

时间:2018-09-29 19:26:50

标签: node.js authentication google-sheets-api google-api-nodejs-client

我正在尝试使用Google Sheets 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']

2 个答案:

答案 0 :(得分:0)

问题来自token.json文件。更改范围后,我忘记删除它。问题解决了!

答案 1 :(得分:0)

几天来我一直遇到相同的问题,终于在我的文件系统中发现了它。我发誓,我到处都是,到处都没有人给我要删除的文件提供清晰的路径。

因此,对于出于某种原因而寻求使用Sheets API的更多新手程序员,我在以下地方找到了它:

~/Users/< MyUser >/source/repos/< MyVisualStudioProjectName >/< MyVisualStudioProjectName >/bin/Debug/token.json

我删除了该文件夹中的Google.Apis.Auth.OAuth2.Responses.TokenResponse-user,并且我的写请求开始起作用。