Вы передаете URL в качестве аргумента callAPI()
, но функция не использует этот параметр.
function callAPI(url) {
//Access Data
var token = Utilities.base64Encode('mytoken');
var auth = {
user_id: 'myid',
token: token,}
var options = {
muteHttpExceptions: true,
method: 'POST',
payload: JSON.stringify(auth),
}
// Call API
var response = UrlFetchApp.fetch(url, options);
//Parse response
var json= response.getContentText();
return JSON.parse(json)
}
Вы не обновляете переменную offset
. offset
всегда 0
, поэтому offset + 100
всегда 100
. И вы не используете значение, возвращаемое callAPI()
. Значение l oop должно быть перед тем, как вы поместите sh все в массив output
, или вы можете сделать это внутри while
l oop.
function displayData(){
var output = []
var offset = 0
while (true) {
var results = callAPI(APIUrl + offset).resultado;
results.forEach(obj => output.push([obj.code_alfa, obj.detalle, obj.precio]);
if (result.length < 100) {
break;
}
offset += 100;
}
//Clear previous content
var ss = SpreadsheetApp.openByUrl('mygooglesheeturl').getSheetByName('sheetname');
ss.getRange(1,1,500,3).clearContent();
//Insert new data in sheet
var len = output.length;
ss.getRange(1,1,len,3).setValues(output);
Logger.log(output);
}