API Eksternal

Google Apps Script dapat berinteraksi dengan API dari seluruh web. Gunakan panduan ini untuk menggunakan berbagai jenis API dalam skrip Anda.

Terhubung ke API publik

Gunakan layanan UrlFetch untuk membuat permintaan API secara langsung.

Contoh berikut menggunakan GitHub API untuk menelusuri repositori dengan 100 bintang atau lebih yang menyebutkan "Apps Script". Permintaan API ini tidak memerlukan otorisasi atau kunci API.

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);

Membuat permintaan ke layanan dengan OAuth

API yang bertindak atas nama pengguna biasanya memerlukan otorisasi, sering kali menggunakan protokol OAuth. Apps Script tidak menyediakan dukungan bawaan untuk protokol ini, tetapi ada library open source yang dapat Anda gunakan untuk melakukan alur OAuth dan mengirimkan kredensial dengan permintaan Anda:

Mengautentikasi dengan akun layanan

Untuk memanggil API dari Apps Script, Anda dapat memilih untuk menggunakan autentikasi akun layanan karena salah satu alasan berikut:

  • Performa yang lebih baik dengan Google Cloud API
  • Otomatisasi dan tugas yang berjalan lama
  • Keamanan yang lebih baik (hak istimewa paling rendah)
  • Manajemen akses terpusat

Untuk menggunakan akun layanan di Apps Script, lihat Melakukan autentikasi sebagai project Apps Script menggunakan akun layanan.

Terhubung ke layanan Google Cloud

Anda dapat menggunakan metode ScriptApp.getIdentityToken() untuk mendapatkan token identitas OpenID Connect (Token Web JSON atau JWT) untuk pengguna yang efektif. Anda dapat menggunakan token ini untuk mengautentikasi layanan Google Cloud, seperti Cloud Run, yang dikonfigurasi untuk menerimanya.

Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke layanan Google Cloud.

Bekerja dengan JSON

Bekerja dengan objek JSON mirip dengan bekerja dengan XML, kecuali bahwa penguraian atau encoding objek JSON jauh lebih mudah.

Saat API menampilkan respons JSON mentah, akses respons string JSON menggunakan metode HTTPResponse.getContentText. Setelah mengambil string, gunakan JSON.parse() untuk menguraikannya menjadi objek JavaScript.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

Demikian pula, untuk mengonversi objek JavaScript menjadi string JSON untuk payload permintaan, gunakan JSON.stringify().

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.

Mengurai XML

Jika API eksternal menampilkan respons XML mentah untuk permintaan, akses respons XML menggunakan metode HTTPResponse.getContentText().

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

Saat membuat permintaan XML ke API, gunakan metode XmlService untuk membuat XML yang akan dikirim.

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.