Node.js 未经授权,仅用于清除请求Google Sheets API

Node.js 未经授权,仅用于清除请求Google Sheets API,node.js,google-api,google-oauth,google-spreadsheet-api,google-api-js-client,Node.js,Google Api,Google Oauth,Google Spreadsheet Api,Google Api Js Client,我正在node.js应用程序中使用Google Sheets API v4。我正在使用范围设置为“”的JWT客户端进行身份验证。我发现我可以成功地更新工作表或执行追加操作,但在尝试清除工作表时会出现错误 在我的开发环境中,我使用的服务用户不属于我所属的组织。这会对授权的呼叫产生影响吗?查看有关在组织级别设置共享权限的文档,这些控件似乎没有那么细粒度 auth(scopes) { const key = process.env.GOOGLE_SERVICE_ACCOUNT_PRIV

我正在node.js应用程序中使用Google Sheets API v4。我正在使用范围设置为“”的JWT客户端进行身份验证。我发现我可以成功地更新工作表或执行追加操作,但在尝试清除工作表时会出现错误

在我的开发环境中,我使用的服务用户不属于我所属的组织。这会对授权的呼叫产生影响吗?查看有关在组织级别设置共享权限的文档,这些控件似乎没有那么细粒度

    auth(scopes) {
    const key = process.env.GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY;
    const email = process.env.GOOGLE_SERVICE_ACCOUNT_CLIENT_EMAIL;
    const jwtClient = new google.auth.JWT(email, null, key, scopes);
    jwtClient.authorize((err) => {
      if (err) {
        console.log(err);
      }
    });
    return jwtClient;
  }

使用相同的jwt客户端、电子表格id和工作表名称,第一次调用成功,但第二次调用失败

await google.updateSheet(google_jwtClient, spreadsheet_id, sheet_name, data);
await google.clearSheet(google_jwtClient, spreadsheet_id, sheet_name);
{消息:'请求缺少必需的身份验证凭据。 预期的OAuth 2访问令牌、登录cookie或其他有效身份验证凭据。 看",, 域:“全局”, 原因:“未经授权”}

'请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌、登录cookie或其他有效身份验证凭据

意味着您的请求不包含凭据

您没有将jwtClient应用于请求

 async clearSheet(jwtClient, spreadsheet_id, sheet_name) {
     const clear = util.promisify(sheets.spreadsheets.values.clear);
     const request = {
         spreadsheetId: spreadsheet_id,
         auth: jwtClient,
         range: sheet_name
     };
     const response = await clear(request);
     return response;
 }
 async clearSheet(jwtClient, spreadsheet_id, sheet_name) {
     const clear = util.promisify(sheets.spreadsheets.values.clear);
     const request = {
         spreadsheetId: spreadsheet_id,
         auth: jwtClient,
         range: sheet_name
     };
     const response = await clear(request);
     return response;
 }