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
Doğrudan API istekleri göndermek 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 istek gönderme
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:
- Apps Komut Dosyası için OAuth1: OAuth 1.0 ve 1.0a ile uyumludur.
- Apps Script için OAuth2: OAuth2 ile uyumludur.
Bir hizmet hesabı kullanarak kimlik doğrulama
Apps Komut Dosyası'ndan bir API çağırmak için aşağıdaki nedenlerden herhangi biriyle hizmet hesabı kimlik doğrulamasını kullanmayı tercih edebilirsiniz:
- Google Cloud API'leriyle daha iyi performans
- Otomasyonlar ve uzun süren görevler
- Daha yüksek güvenlik (en az ayrıcalık)
- Merkezi erişim yönetimi
Apps Komut Dosyası'nda hizmet hesabı kullanmak için Hizmet hesaplarını kullanarak Apps Komut Dosyası projesi olarak kimlik doğrulama başlıklı makaleyi inceleyin.
JSON ile çalışma
JSON nesneleriyle çalışmak, XML ile çalışmaya benzer. Ancak JSON nesnesini ayrıştırmak veya kodlamak çok daha kolaydı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.