一尘不染

Google电子表格api请求的身份验证范围不足

node.js

我正在使用nodejs上的以下脚本编写脚本以从Google电子表格读取数据:

var url = oauth2Client.generateAuthUrl({
    access_type:     'offline',
    approval_prompt: 'force',
    scope: [
      'https://www.googleapis.com/auth/analytics.readonly',
      'https://www.googleapis.com/auth/drive',
      'https://www.googleapis.com/auth/spreadsheets'
    ]
});
global.googleapis = { expiry_date: 0 };
google.options({ auth: oauth2Client });
var sheets    = google.sheets('v4');
sheets.spreadsheets.get({ spreadsheetId: 'id'}, function(err, data) {
    res.send(err, data);
});

但是在每个获取请求时,我都会收到此错误:

Request had insufficient authentication scopes.

我检查了Google开发人员控制台以启用Google Drive API并启用了它,所以我真的不知道这可能是什么。


阅读 276

收藏
2020-07-07

共1个答案

一尘不染

  1. 首先删除凭据文件~/.credentials/sheets.googleapis.com-nodejs-quickstart.json(取决于您的设置)

  2. 从更改用于从Google Spreadsheets读取单元格的作用域变量

var SCOPES = [‘
https://www.googleapis.com/auth/spreadsheets.readonly
‘];

var SCOPES = [‘
https://www.googleapis.com/auth/spreadsheets
‘];

  1. 执行代码后,API将再次进行身份验证,然后将解决该问题。
2020-07-07