Вот простое соединение API:
function publicAPIs() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('publicAPIs.org')
sh.activate();
var rg=sh.getRange(1,1,3,2);
var vA=rg.getValues();
var apiObj={};
for(var i=0;i<vA.length;i++){
apiObj[vA[i][0]]=vA[i][1];
}
var r=UrlFetchApp.fetch(apiObj.baseurl + '/categories');
var cA=JSON.parse(r);
var catA=[];
for(var i=0;i<cA.length;i++){
catA.push([cA[i]]);
}
ss.getSheetByName('NamedRanges').getRange(2,1,catA.length,1).setValues(catA);
var url=apiObj.baseurl + apiObj.qry.replace('~~~',encodeURIComponent(apiObj.category));
Logger.log(url);
var result=UrlFetchApp.fetch(url);
var response=JSON.parse(result.getContentText());
Logger.log(response.count);
var hl=Utilities.formatString('<br />URL:%s', url);
hl+='<br /><input type="button" value="Exit" onClick="google.script.host.close();" />';
hl+='<style>td,th{border:1px solid #000;}</style><table><tr><th>No</th><th>API</th><th>Description</th><th>Auth</th><th>HTTPS</th><th>Cors</th><th>Link</th><th>Category</th></tr>';
for(var i=0;i<response.count;i++){
hl+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',i+1, response.entries[i].API, response.entries[i].Description,response.entries[i].Auth,response.entries[i].HTTPS,response.entries[i].Cors,response.entries[i].Link,response.entries[i].Category)
}
hl+='</table>';
var userInterface=HtmlService.createHtmlOutput(hl).setWidth(1000);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'publicAPIs.org')
}
Вот как выглядит электронная таблица:
Функция также загружаетправило проверки из NamedRange.