无权调用 setValues() - Google Apps 脚本,JSON 数据

No Permission to call setValues() - Google Apps Script, JSON data

这是一个 Google Apps 脚本,可将 JSON 数据提取到 Google 表格中。

密码是:

function pullJSON() {

  var url="https://api.myjson.com/bins/4610d"; // publicly available json

  var response = UrlFetchApp.fetch(url); // 
  var sheet =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");

  var dataAll = JSON.parse(response.getContentText()); 
  var dataSet = dataAll;

  var rows = [],
      data;

  for (i = 0; i < Object.keys(dataSet).length; i++) {
    data = dataSet[Object.keys(dataSet)[i]];
    rows.push([data.name]); //JSON entities here
  }

  dataRange = sheet.getRange(1, 1, rows.length, 1); 
  dataRange.setValues(rows);
}

在 Google 表格中,我通过在单元格中输入 =pullJSON() 来调用函数。它显示错误:

"You do not have permission to call setValues(line 20)" 指的是行:dataRange.setValues(行);

并在单元格 A1、A2、A3 中产生 "undefined" 结果。

JSON数据源就是这样:

{"id":1,"name":"A green door","price":12.5}

这样做的目的是为了能够将 JSON 数据转换成 google 表格中的 table 形式。

以上大部分内容紧跟本帖中的内容: "The coordinates or dimensions of the range are invalid" - Google Apps Script and JSON Data

请就此问题提供任何指导,将不胜感激。

A custom function cannot affect cells other than those it returns a value to. In other words, a custom function cannot edit arbitrary cells, only the cells it is called from and their adjacent cells. To edit arbitrary cells, use a custom menu to run a function instead.

来自文档:https://developers.google.com/apps-script/guides/sheets/functions

我不知道您的确切用例,但看起来可以从自定义菜单中 运行 您的功能。