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, "Apps Komut Dosyası"ndan bahseden ve 100 veya daha fazla yıldız alan 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
Kullanıcı adına hareket eden API'ler genellikle OAuth protokolü. 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 kaynak kitaplıklar vardır:
- Apps Komut Dosyası için OAuth1: OAuth 1.0 ve 1.0a ile uyumludur.
- Apps Komut Dosyası için OAuth2: OAuth2 ile uyumludur.
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.