Вы можете использовать функцию fetchAll () [1] для отправки всех запросов, которые вам нужны в пакетном режиме. Я получаю массив адресов из листа «Адреса» и вставляю результаты в ту же электронную таблицу, но в лист «Результаты».
function findRep() {
var ss = SpreadsheetApp.openById("[SPREADSHEET-ID]");
var targetSheet = ss.getSheetByName("Results")
var sourceSheet = ss.getSheetByName("Addresses")
var addresses = sourceSheet.getDataRange().getValues();
var requests = [];
//Loop to set up the requests array
for(var i=1; i<addresses.length; i++) {
var address = addresses[i];
var request = 'https://www.googleapis.com/civicinfo/v2/representatives?address=' + address + '&includeOffices=true&levels=administrativeArea1&roles=legislatorLowerBody&roles=legislatorUpperBody&fields=divisions%2CnormalizedInput%2Cofficials&key=[API-KEY]';
requests.push(request)
}
//Get the responses in batch
var responses = UrlFetchApp.fetchAll(requests);
//Iterate the responses object and insert the data
for(var i=0; i<responses.length; i++) {
var response = JSON.parse(responses[i].getContentText());
var official = response.officials[0].name;
targetSheet.getRange(targetSheet.getLastRow() + 1,1).setValue(official);
}
}
В своем коде я использую только первое значение из массива должностных лиц ивведите имя этого человека. Потому что для каждого чиновника нет поля электронной почты.
[1] https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchAll(Object)