Harici API'lar

Google Apps Komut Dosyası, tüm web'deki API'lerle etkileşim kurabilir. Bu kılavuzda, komut dosyalarınızda farklı API türleriyle nasıl çalışabileceğiniz gösterilmektedir.

Herkese açık API'lere bağlanma

Doğrudan API istekleri yapmak için UrlFetch hizmetini kullanabilirsiniz.

Aşağıdaki örnekte, "Apps Komut Dosyası"nın geçtiği, 100 veya daha fazla yıldıza sahip depoları aramak için GitHub API kullanılmaktadır. 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);

OAuth ile hizmetlere istek gönderme

Bir kullanıcı adına işlem yapan API'ler genellikle yetkilendirme gerektirir ve çoğu zaman OAuth protokolünü kullanır. Apps Komut Dosyası, protokol için yerleşik destek sağlamaz ancak OAuth akışını gerçekleştirmek ve isteklerinizle kimlik bilgilerini göndermek için kullanabileceğiniz açık kaynak kitaplıklar vardır:

JSON ile çalışma

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

İstenen API, bir istek için ham bir JSON yanıtı döndürürse JSON dizesi yanıtına HTTPResponse.getContentText() yöntemi kullanılarak erişilebilir. Bu dize alındıktan sonra yerel nesne gösterimi almak için dizede JSON.parse() çağrısı yapmanız yeterlidir.

// 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, istekte bulunmak üzere bir JavaScript nesnesinin dize temsilini yapmak için JSON.stringify() öğesini 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 XML yanıtına HTTPResponse.getContentText() yöntemini kullanarak erişebilirsiniz.

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

Bir API'ye XML istekleri yaparken, XmlService yöntemlerini kullanarak gönderilecek XML'i oluşturun.

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.