5

मैंने पांच कॉलम के साथ एक Google स्प्रेडशीट बनाई है;Google स्प्रैडशीट में बाहरी API कॉल संभव है?

एक बार उपयोगकर्ता ने पहले तीन कॉलम में मान भर दिए, इसे एक तृतीय पक्ष एपीआई कॉल करना होगा और आगे और पांचवें कॉलम में मान (प्रतिक्रिया) भरना होगा।

क्या एपीआई कॉल के लिए Google स्प्रेडशीट में एक कोड लिखना संभव है? क्या Google स्प्रेडशीट में बाहरी एपीआई से कॉल करना और प्रतिक्रिया प्राप्त करना संभव है?

+0

यह एक अच्छा सवाल है - आप पाया है अभी तक एक जवाब? – user531065

+1

मुझे जवाब नहीं मिला। मुझे आशा है कि यह संभव नहीं है (सुनिश्चित नहीं)। मैंने इसे स्टैंडअलोन एप्लिकेशन के रूप में बनाया है। –

उत्तर

6

एपीआई कॉल करने का कोई तरीका है और परिणाम स्प्रेडशीट में जाते हैं - एकमात्र तरीका जिसे मैं जानता हूं वह लक्ष्य स्प्रेडशीट बना/खोलता है, टूल्स और फिर स्क्रिप्ट संपादक पर जाता है, और इसे बाध्य के रूप में उपयोग करता है स्क्रिप्ट:

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); 
} 

इसे थोड़ा इंटरफ़ेस काम करने की आवश्यकता है लेकिन कार्य! यह एक एपीआई कॉल से जानकारी लेता है और इसे एक स्प्रेडशीट में रखता है।

0

मैं हाल ही में शीट की पंक्तियों को पढ़ने और अनुरोध में डेटा भेजने और प्रतिक्रिया रिकॉर्ड करने के लिए एक ही आवश्यकता में आया हूं। मैंने सोचा कि मैं हिस्सा होगा क्या मैं थोड़ा googling के बाद बाहर काम किया ...

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); 
    } 
} 

आप डाटा शीट में आप समारोह का उपयोग करना चाहिए प्राप्त करना चाहते हैं:

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... 
    } 

आशा है कि यह उपयोगी है आप सभी को जो ऊपर की तरह समान आवश्यकता का सामना कर रहे हैं।

मैं GitHub में इस स्क्रिप्ट पोस्ट किया है अगर आप कांटा/खींचने के लिए चाहते हैं ...

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

चीयर्स,

पार्थ

संबंधित मुद्दे