Harici API'lar

Google Apps Komut Dosyası, web'in her yerindeki API'lerle etkileşim kurabilir. Bu kılavuzda, komut dosyalarınızda farklı API türleriyle nasıl çalışacağınız gösterilmektedir.

Herkese açık API'lere bağlanma

API isteklerini doğrudan yapmak için UrlFetch hizmetini kullanabilirsiniz.

Aşağıdaki örnekte, "Apps Komut Dosyası"ndan bahseden ve 100 veya daha fazla yıldız içeren depoları aramak için GitHub API kullanılmaktadır. Bu API isteği için yetkilendirme veya API anahtarı gerekmez.

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 istekte bulunma

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

JSON ile çalışma

JSON nesneleriyle çalışmak, XML ile çalışmaya benzer. Tek fark, JSON nesnelerini ayrıştırmanın veya kodlamanın çok daha kolay olmasıdır.

İstenen API, bir istek için ham JSON yanıtı döndürüyorsa JSON dize yanıtına HTTPResponse.getContentText() yöntemi kullanılarak erişilebilir. Bu dize alındıktan sonra, yerel bir nesne gösterimi elde etmek için dizede JSON.parse() işlevini çağırmanı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 için bir JavaScript nesnesinin dize gösterimini oluşturmak üzere JSON.stringify() 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, istek için ham XML yanıtı döndürürse HTTPResponse.getContentText() yöntemini kullanarak XML yanıtına 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 gönderirken XmlService yöntemlerini kullanarak gönderilecek XML'yi 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.