I'm trying to use a script given in answer to this question google spreadsheet script - Enable filter with a range by script
The aim is to create a basic filter on a spreadsheet.
This is the script
function applyFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var dataSheet = ss.getActiveSheet();
var lastRow = dataSheet.getLastRow();
var lastColumn = dataSheet.getLastColumn();
var sheetId = dataSheet.getSheetId();
var filterSettings = {
"range": {
"sheetId": sheetId,
"startRowIndex": 0,
"endRowIndex": lastRow,
"startColumnIndex": 0,
"endColumnIndex": lastColumn
}
};
var requests = [{
"setBasicFilter": {
"filter": filterSettings
}
}];
Logger.log(requests );
Logger.log(" ssid: " + ssId);
try{
Sheets.Spreadsheets.batchUpdate({'requests': requests}, ssId);
}
catch(e){Logger.log(e.message)}
}
These are the logs for my last attempt at running it the final line is the the error I'm getting
[17-09-17 10:32:57:700 BST] [{setBasicFilter={filter={range={endColumnIndex=26, endRowIndex=3756, sheetId=519417536, startColumnIndex=0.0, startRowIndex=0.0}}}}]
[17-09-17 10:32:57:701 BST] ssid: 1-05tNvAddY6gwzK9GYC4aMG347XARy_yUXZRcXxgHIk
[17-09-17 10:32:57:702 BST] Cannot call method "batchUpdate" of undefined.
The ssid is correct, the sheetId is correct. I have switched on the Google Sheets API in resources - I have enabled it in the Google API console
I'd be grateful if someone could tell me what I'm doing wrong