NonplayerCharacter

Google Apps Script | API query to spreadsheet

May 28th, 2019
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function queryOpenData(){
  2.  
  3.   var myAPIkey = "xxxxx";
  4.   var sheet = SpreadsheetApp.getActiveSheet();
  5.   sheet.getRange(1,1).setValue("Date");
  6.   sheet.getRange(1,2).setValue("Dataset");
  7.   sheet.getRange(1,3).setValue("API calls");
  8.   sheet.getRange(1,4).setValue("Downloads");
  9.  
  10.   var datasets = [];
  11.  
  12.   // Get the list of datasets
  13.   var datasetsQuery = JSON.parse(UrlFetchApp.fetch("https://opendata.city.gov/api/v2/catalog/exports/json?rows=-1&apikey="+myAPIkey));
  14.  
  15.   // Create a list of dataset IDs
  16.   for(var i=0; i<datasetsQuery.length; i++){
  17.     var thisEntry = datasetsQuery[i];
  18.     datasets.push(thisEntry.dataset_id);
  19.   }
  20.  
  21.   // Quick test
  22.   // var datasetsLite = [datasets[0],datasets[1],datasets[2]];
  23.  
  24.   // Walk through the dataset IDs array
  25.   // Extract the data we're after: downloads and API calls
  26.   for(var d=0;d<datasets.length;d++){
  27.   // for(var d=0;d<datasetsLite.length;d++){ // for testing
  28.     var response = JSON.parse(UrlFetchApp.fetch("https://opendata.city.gov/api/v2/catalog/datasets/"+datasets[d]+"/?apikey="+myAPIkey+"&include_app_metas=true"));
  29.     var count_api = response.dataset.metas.explore.api_call_count;
  30.     var count_dl  = response.dataset.metas.explore.download_count;
  31.     // Logger.log(response);
  32.     // sheet.getRange(sheet.getLastRow() + 1,1).setValue([fact]);
  33.     sheet.getRange(sheet.getLastRow() + 1,1).setValue([Utilities.formatDate(new Date(), "-08", "MMM dd, yyyy")]);
  34.     sheet.getRange(sheet.getLastRow() + 0,2).setValue([datasets[d]]);  
  35.     sheet.getRange(sheet.getLastRow() + 0,3).setValue([count_api]);  
  36.     sheet.getRange(sheet.getLastRow() + 0,4).setValue([count_dl]);
  37.   }
  38. }
  39.  
  40. function onOpen() {
  41.   var ui = SpreadsheetApp.getUi();
  42.   ui.createMenu('OpenData')
  43.       .addItem('Update download and API counts','queryOpenData')
  44.       .addToUi();
  45. }
Add Comment
Please, Sign In to add comment