如何使用nodejs和GAS访问活动工作表?

时间:2017-05-22 08:52:59

标签: node.js google-apps-script google-api

我正试图从谷歌电子表格中获取活动工作表,但我无法获得当前活动的工作表。

这是我在nodejs中的调用脚本:

function callAppsScript() {
  var scriptId = 'myscriptid'
  var script = google.script('v1');
  var auth = getOAuthClient();
  auth.setCredentials({
    client_id: 'myclientid',
    client_secret: 'mycs',
    refresh_token: 'myrt'
  });

  // Make the API request. The request object is included here as 'resource'.
  script.scripts.run({
      auth: auth,
      resource: {
        function: 'publicFunction',
        parameters: [spreadsheetid],
        devMode: true
      },
      scriptId: scriptId
    }, function(err, resp) {
      if (err) {
        console.log('The API returned an error: ' + err);
        return;
      }
      var apiresp = resp.response.result;
      console.log('current sheet id : ', apiresp);
    }
  });
}

以下是我的google apps脚本:

function publicFunction(params) {

  var id = SpreadsheetApp.openById(params).getSheetId();

  return id; // it is always returning first worksheet Id 
}

1 个答案:

答案 0 :(得分:0)

要获取有效的电子表格,您可以使用:

getActive()getActiveSpreadsheet()

  

“返回当前活动的电子表格,如果没有,则返回null。   在电子表格的上下文中运行的函数可以获得   通过调用它来引用相应的Spreadsheet对象   功能“。