5

Ich habe eine Google-Tabelle mit fünf Spalten erstellt.Externer API-Aufruf in Google Spreadsheet ist möglich?

Sobald der Benutzer die Werte in den ersten drei Spalten gefüllt hat, muss er eine API eines Drittanbieters aufrufen und den Wert (Antwort) in der vierten und fünften Spalte ausfüllen.

Ist es möglich, einen Code in Google Spreadsheet für API-Aufruf zu schreiben? Ist es möglich, die externe API in Google Spreadsheet aufzurufen und zu beantworten?

+0

Dies ist eine gute Frage - haben Sie gefunden eine Antwort noch? – user531065

+1

Ich habe die Antwort nicht gefunden. Ich hoffe es ist nicht möglich (nicht sicher). Ich habe es als eigenständige Anwendung erstellt. –

Antwort

6

Es gibt eine Möglichkeit, API-Aufrufe zu erstellen und die Ergebnisse in eine Tabelle zu übertragen - die einzige Methode, die ich kenne, ist das Erstellen/Öffnen der Zieltabelle, die Tools und dann der Skript-Editor script:

function Maestro() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); //get active spreadsheet (bound to this script) 
var sheet = ss.getSheetByName('mae'); //The name of the sheet tab where you are sending the info 

var apiCall = 'getUpcomingConference'; 
var apiKey = '_____key here______'; 
var apiToken = '______security token______'; 
var url = 'http://myaccount.maestroconference.com/_access/' + apiCall +"?customer=" + apiKey + "&key=" + apiToken; //api endpoint as a string 

var response = UrlFetchApp.fetch(url); // get api endpoint 
var json = response.getContentText(); // get the response content as text 
var mae = JSON.parse(json); //parse text into json 

Logger.log(mae); //log data to logger 

var stats=[]; //create empty array to hold data points 

var date = new Date(); //create new date for timestamp 

//The number in brackets refers to which instance we are looking at - soonest upcoming call is [0], next after that is [1], etc. 
stats.push(date); //timestamp 
stats.push(mae.value.conference[0].name); 
stats.push(mae.value.conference[0].scheduledStartTime); 
stats.push(mae.value.conference[0].UID); 

//append the stats array to the active sheet 
sheet.appendRow(stats); 
} 

Es braucht eine kleine Schnittstelle funktioniert aber funktioniert! Er nimmt Informationen aus einem API-Aufruf und legt sie in einer Tabelle ab.

0

Ich bin vor kurzem über die gleiche Anforderung gekommen, die Zeilen des Blattes zu lesen und die Daten in Anfrage zu senden und die Antwort aufzuzeichnen. Ich dachte, ich würde teilen, was ich gearbeitet, nachdem ein bisschen googeln ...

function testing_this() { 
    var data = SpreadsheetApp.getActiveSheet().getDataRange().getValues(); 
    for (row in data) { 
     Logger.log(data[row]); 

     var row = data[row] 
     var options = { 
      'method': 'post', 
      'payload': { email:row[1]} 
     }; 
     // sending to API. for example: 
     UrlFetchApp.fetch('https://your-rest-api-url/v1/customers/', options); 
    } 
} 

Wenn Sie die Daten erhalten möchten in dem Blatt die Funktion verwenden soll: Hoffnung

var response = UrlFetchApp.getRequest("http://your-api-url/"); 
    for(data in response) { 
     var respData = response[data]; 
     // do whatever u want to do with this data... 
    } 

es nützlich ist, an alle, die ähnliche Anforderungen haben wie oben.

ich dieses Skript in Github veröffentlicht haben, wenn Sie Gabel zu wollen/Pull ...

https://github.com/joshiparthin/gsheetScriptExperiments/blob/master/readAndSendToApi.js

Cheers,

Parth

Verwandte Themen