Google Apps Komut Dosyası, web'in her yerindeki API'lerle etkileşimde bulunabilir. Komut dosyalarınızda farklı API türleriyle çalışmak için bu kılavuzu kullanın.
Herkese açık API'lere bağlanma
API isteklerini doğrudan yapmak için UrlFetch hizmetini kullanın.
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 Komut Dosyası 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.
Google Cloud hizmetlerine bağlanma
Etkili kullanıcı için ScriptApp.getIdentityToken() yöntemini kullanarak OpenID Connect kimlik jetonu (JSON Web Token veya JWT) alabilirsiniz. Bu jetonu, Cloud Run gibi kabul edecek şekilde yapılandırılmış Google Cloud hizmetleriyle kimlik doğrulaması yapmak için kullanabilirsiniz.
Daha fazla bilgi için Google Cloud hizmetlerine bağlanma başlıklı makaleyi inceleyin.
JSON ile çalışma
JSON nesneleriyle çalışmak, XML ile çalışmaya benzer. Ancak JSON nesnelerini ayrıştırmak veya kodlamak çok daha kolaydır.
Bir API, ham JSON yanıtı döndürdüğünde HTTPResponse.getContentText yöntemini kullanarak JSON dizesi yanıtına erişin.
Dizeyi aldıktan sonra, JSON.parse() kullanarak dizeyi bir JavaScript nesnesine ayrıştırın.
// 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, bir JavaScript nesnesini istek yükü için JSON dizesine dönüştürmek ü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şin.
// 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, gönderilecek XML'yi oluşturmak için 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.