बाहरी एपीआई

Google Apps Script, पूरे वेब पर मौजूद एपीआई के साथ इंटरैक्ट कर सकती है. इस गाइड में, स्क्रिप्ट में अलग-अलग तरह के एपीआई इस्तेमाल करने का तरीका बताया गया है.

सार्वजनिक एपीआई से कनेक्ट करें

एपीआई अनुरोध सीधे तौर पर करने के लिए, UrlFetch सेवा का इस्तेमाल किया जा सकता है.

इस उदाहरण में, GitHub API का इस्तेमाल किया गया है. इसमें 100 या उससे ज़्यादा स्टार वाले डेटा स्टोर करने की ऐसी जगहें खोजी गई हैं जिनमें "Apps Script" के बारे में बताया गया है. इस एपीआई अनुरोध के लिए अनुमति या एपीआई पासकोड की ज़रूरत नहीं है.

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

OAuth की मदद से सेवाओं का अनुरोध करना

आम तौर पर, ऐसे एपीआई के लिए अनुमति की ज़रूरत होती है जो उपयोगकर्ता की ओर से काम करते हैं. आम तौर पर, इसके लिए OAuth प्रोटोकॉल का इस्तेमाल किया जाता है. Apps Script में प्रोटोकॉल के लिए, पहले से मौजूद सहायता नहीं मिलती. हालांकि, कुछ ओपन सोर्स लाइब्रेरी हैं जिनका इस्तेमाल OAuth फ़्लो को पूरा करने के लिए किया जा सकता है. साथ ही, अपने अनुरोधों के साथ क्रेडेंशियल भी भेजे जा सकते हैं:

JSON के साथ काम करना

JSON ऑब्जेक्ट के साथ काम करना, एक्सएमएल के साथ काम करने जैसा ही है. हालांकि, JSON ऑब्जेक्ट को पार्स या एन्कोड करना ज़्यादा आसान है.

जिस एपीआई का अनुरोध किया जा रहा है, अगर उससे किसी अनुरोध के लिए बिना किसी प्रोसेस वाले JSON रिस्पॉन्स मिलता है, तो JSON स्ट्रिंग रिस्पॉन्स को HTTPResponse.getContentText() तरीके का इस्तेमाल करके ऐक्सेस किया जा सकता है. इस स्ट्रिंग के वापस आने के बाद, नेटिव ऑब्जेक्ट का प्रतिनिधित्व पाने के लिए, बस JSON.parse() को स्ट्रिंग पर कॉल करें.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

इसी तरह, अनुरोध करने के लिए JavaScript ऑब्जेक्ट को स्ट्रिंग के तौर पर दिखाने के लिए, JSON.stringify() का इस्तेमाल करें.

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

XML पार्स करें

अगर कोई बाहरी एपीआई किसी अनुरोध के लिए रॉ एक्सएमएल रिस्पॉन्स देता है, तो एक्सएमएल रिस्पॉन्स को HTTPResponse.getContentText() तरीके का इस्तेमाल करके ऐक्सेस किया जा सकता है.

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

किसी एपीआई को एक्सएमएल के अनुरोध करते समय, XmlService तरीकों का इस्तेमाल करके उसे भेजने के लिए एक्सएमएल बनाएं.

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding');
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.