繁体   English   中英

在Apps脚本中使用相同工作表的Google表格API

[英]Using Google Sheets API from within Apps Script for same Sheet

通过SpreadsheetApp全局,使用绑定到电子表格的应用程序脚本来实现工作表非常简单。 但是,有一些功能,例如在工作表上获取/设置过滤器,只能从Google表格REST API访问。

我已经看到了一个在Apps脚本中使用UrlFetchApp的示例,用于调用Google Sheet API,但它的编写方式就好像Apps脚本实际上并未绑定到特定的电子表格。

function getSheetBasicFilter(ssId, sheetId) {
  var params = {
    headers: {
      "Authorization": "Bearer " + ScriptApp.getOAuthToken()
    }
  };
  var base = "https://sheets.googleapis.com/v4/spreadsheets/";
  var partialRespParams = "?fields=sheets%2FbasicFilter";
  var resp = UrlFetchApp.fetch(base + ssId + partialRespParams, params);
  var sheets = JSON.parse(resp.getContentText()).sheets;
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].basicFilter 
        && (sheets[i].basicFilter.range.sheetId == sheetId 
            || (!sheets[i].basicFilter.range.sheetId && sheetId == 0))) {
      return sheets[i].basicFilter;
    }
  }
  return null;
}

当我尝试从电子表格绑定应用程序脚本中调用此函数时,我收到错误“请求的身份验证范围不足”。

由于脚本作为拥有该文档的用户运行,并且正在使用ScriptApp.getOAuthToken(),因此不清楚为什么会发生此错误。

任何帮助,将不胜感激。

首先,确保在Developers Console中启用S​​heets API

错误“ Request had insufficient authentication scopes ”是请求中提供的OAuth 2.0令牌中的错误,指定的范围不足以访问请求的数据。

确保使用正确且所有必要的范围 ,如果您正确执行此处的步骤, 请使用OAuth 2.0检查此授权请求

您也可以尝试撤消访问权限并尝试重做它。

有关更多信息,请查看ScriptApp.getOAuthToken()和此主题的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM