Harici API'lar

Google Apps Komut Dosyası, tüm web'den API'lerle etkileşime geçebilir. Bu kılavuz komut dosyalarınızda farklı API türleriyle nasıl çalışacağınızı gösterir.

Herkese açık API'lere bağlanma

UrlFetch hizmetini kullanarak Doğrudan API isteklerini.

Aşağıdaki örnekte GitHub API'sinden "Apps Komut Dosyası"ndan bahseden, 100 veya daha fazla yıldızlı depoları arayabilirsiniz. Bu API isteği, yetkilendirme veya API anahtarı gerektirmiyor.

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

Hizmetlere OAuth ile istek gönderme

Kullanıcı adına hareket eden API'ler genellikle OAuth protokolü. Apps Komut Dosyası, komut dosyalarında yerleşik desteği vardır ancak açık kaynak kitaplıklar olduğunu unutmayın. OAuth akışını gerçekleştirin ve kimlik bilgilerini isteklerinizle birlikte gönderin:

JSON ile çalışın

JSON nesneleriyle çalışmak XML ile çalışmaya benzer, ancak ayrıştırma veya JSON nesnesi kodlamak çok daha kolaydır.

İstenen API bir istek için ham JSON yanıtı döndürürse JSON dize yanıtına yöntem kullanılarak erişilebilir HTTPResponse.getContentText(). Bu dize alındıktan sonra, JSON.parse() doğal nesne temsili.

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

Benzer şekilde, JavaScript nesnesinin dize gösterimini yapmak için istekte bulunmak için JSON.stringify() kodunu kullanın.

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 ayrıştırma

Harici bir API bir istek için ham XML yanıtı döndürürse Yöntemin kullanıldığı XML yanıtı HTTPResponse.getContentText().

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

Bir API'ye XML isteği gönderirken kullanılacak XML'yi XmlService yöntemlerini kullanın.

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.