Layanan lanjutan di Google Apps Script memungkinkan Anda terhubung ke Google API publik tertentu dengan lebih sedikit penyiapan dibandingkan menggunakan antarmuka HTTP-nya. Layanan tingkat lanjut adalah wrapper ringan di seputar Google API tersebut. Cara kerjanya mirip dengan layanan bawaan Apps Script—misalnya, layanan ini menawarkan pelengkapan otomatis, dan Apps Script menangani alur otorisasi secara otomatis. Aktifkan layanan tingkat lanjut sebelum menggunakannya dalam skrip.
Mengaktifkan layanan lanjutan
Untuk menggunakan layanan Google lanjutan, ikuti petunjuk berikut:
Langkah 1: Aktifkan layanan lanjutan
Aktifkan layanan lanjutan menggunakan editor Apps Script atau dengan mengedit manifes.
Metode A: Menggunakan Editor
- Buka project Apps Script.
- Di sebelah kiri, klik Editor .
- Di sebelah kiri, di samping Layanan, klik Tambahkan layanan .
- Pilih layanan Google lanjutan, lalu klik Tambahkan.
Metode B: Menggunakan manifes
Aktifkan layanan lanjutan dengan mengedit file
manifes. Misalnya, untuk mengaktifkan
layanan lanjutan Google Drive, tambahkan kolom enabledAdvancedServices ke objek
dependencies:
{
"timeZone": "America/Denver",
"dependencies": {
"enabledAdvancedServices": [
{
"userSymbol": "Drive",
"version": "v3",
"serviceId": "drive"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
Setelah Anda mengaktifkan layanan lanjutan, layanan tersebut akan tersedia di pelengkapan otomatis.
Langkah 2: Aktifkan Google Cloud API (Khusus project Google Cloud standar)
Jika menggunakan project Google Cloud default (dibuat secara otomatis oleh Apps Script), lewati langkah ini. API diaktifkan secara otomatis saat Anda menambahkan layanan pada Langkah 1.
Jika menggunakan project Google Cloud standar, aktifkan API yang sesuai dengan layanan lanjutan secara manual. Untuk mengaktifkan API secara manual:
Buka project Cloud yang terkait dengan skrip Anda di **Konsol Google Cloud**
Di bagian atas konsol, klik kotak penelusuran dan ketik sebagian nama API (misalnya, "Calendar"), lalu klik nama setelah Anda melihatnya.
Klik Enable API.
Tutup konsol Google Cloud dan kembali ke editor skrip.
Cara penentuan tanda tangan metode
Layanan lanjutan umumnya menggunakan objek, nama metode, dan parameter yang sama dengan API publik yang sesuai, meskipun tanda tangan metode diterjemahkan untuk digunakan di Apps Script. Fungsi pelengkapan otomatis editor skrip biasanya memberikan informasi yang cukup untuk memulai. Aturan berikut menjelaskan cara Apps Script membuat tanda tangan metode dari Google API publik.
Permintaan ke Google API dapat menerima berbagai jenis data yang berbeda, termasuk parameter jalur, parameter kueri, isi permintaan, atau lampiran upload media. Beberapa layanan lanjutan juga dapat menerima header permintaan HTTP tertentu (misalnya, layanan lanjutan Kalender).
Tanda tangan metode yang sesuai di Apps Script memiliki argumen berikut:
- Isi permintaan (biasanya berupa resource), sebagai objek JavaScript.
- Jalur atau parameter yang diperlukan, sebagai argumen individual. Jika metode memerlukan beberapa parameter jalur, parameter tersebut akan muncul sesuai urutan yang tercantum di URL endpoint API.
- Lampiran upload media, sebagai argumen
Blob. - Parameter opsional (biasanya parameter kueri), sebagai objek JavaScript yang memetakan nama parameter ke nilai.
- Header permintaan HTTP, sebagai objek JavaScript yang memetakan nama header ke nilai header.
Jika metode tidak memiliki item dalam kategori tertentu, bagian tanda tangan tersebut akan dihilangkan.
Perhatikan pengecualian berikut:
- Untuk metode yang menerima upload media, parameter
uploadTypeditetapkan secara otomatis. - Metode yang bernama
deletedi Google API diberi namaremovedi Apps Script, karenadeleteadalah kata yang dicadangkan di JavaScript. - Jika layanan lanjutan dikonfigurasi untuk menerima header permintaan HTTP, dan Anda menetapkan objek JavaScript header permintaan, Anda juga harus menetapkan objek JavaScript parameter opsional (ke objek kosong jika Anda tidak menggunakan parameter opsional).
Contoh: Calendar.Events.insert
Untuk membuat acara Kalender:
Dokumentasi Google Calendar API menunjukkan struktur permintaan HTTP yang sesuai:
- HTTP Verb:
POST - URL Permintaan:
https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events Isi Permintaan: Resource Event.
Parameter Kueri:
sendUpdates,supportsAttachments, dll.
Di Apps Script, tanda tangan metode ditentukan dengan menyusun ulang input ini:
- Body: Resource acara (objek JavaScript).
- Jalur:
calendarId(string). - Parameter opsional: Parameter kueri (objek JavaScript).
Panggilan metode yang dihasilkan akan terlihat seperti ini:
const event = {
summary: 'Lunch',
location: 'Deli',
start: {
dateTime: '2026-01-01T12:00:00-05:00'
},
end: {
dateTime: '2026-01-01T13:00:00-05:00'
}
};
const calendarId = 'primary';
const optionalArgs = {
sendUpdates: 'all'
};
Calendar.Events.insert(event, calendarId, optionalArgs);
Layanan lanjutan atau HTTP?
Setiap layanan Google lanjutan dikaitkan dengan Google API publik. Di
Apps Script, akses API ini menggunakan layanan lanjutan atau
dengan membuat permintaan API secara langsung menggunakan
UrlFetch.
Jika Anda menggunakan metode layanan lanjutan, Apps Script akan menangani alur otorisasi dan menawarkan dukungan pelengkapan otomatis. Aktifkan layanan lanjutan sebelum menggunakannya.
Jika Anda menggunakan metode UrlFetch untuk mengakses API secara langsung, Anda
pada dasarnya memperlakukan Google API sebagai API eksternal. Dengan
metode ini, gunakan semua aspek API. Namun, Anda harus menangani otorisasi API.
Tabel berikut membandingkan kedua metode tersebut:
| Fitur | Layanan Lanjutan | UrlFetch (HTTP) |
|---|---|---|
| Otorisasi | Ditangani secara otomatis | Memerlukan penanganan manual |
| Pelengkapan Otomatis | Tersedia | Tidak tersedia |
| Cakupan Fungsi | Mungkin merupakan subset API | Akses penuh ke semua fitur API |
| Kompleksitas | Lebih mudah | Lebih kompleks (memerlukan pembuatan header dan parsing respons) |
Perbandingan kode
Contoh kode menunjukkan perbedaan kompleksitas antara membuat acara
Kalender menggunakan layanan lanjutan dan menggunakan
UrlFetchApp.
Layanan Lanjutan:
const event = {
summary: 'Lunch',
location: 'Deli',
start: { dateTime: '2026-01-01T12:00:00-05:00' },
end: { dateTime: '2026-01-01T13:00:00-05:00' }
};
const optionalArgs = {
sendUpdates: 'all'
};
Calendar.Events.insert(event, 'primary', optionalArgs);
UrlFetch (HTTP):
const event = {
summary: 'Lunch',
location: 'Deli',
start: { dateTime: '2026-01-01T12:00:00-05:00' },
end: { dateTime: '2026-01-01T13:00:00-05:00' }
};
const url = 'https://www.googleapis.com/calendar/v3/calendars/primary/events?sendUpdates=all';
const options = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: `Bearer ${ScriptApp.getOAuthToken()}`
},
payload: JSON.stringify(event)
};
UrlFetchApp.fetch(url, options);
Untuk metode UrlFetchApp, tentukan cakupan OAuth yang diperlukan secara manual dalam file
manifes skrip.
Gunakan layanan lanjutan jika memungkinkan dan hanya gunakan metode
UrlFetch jika layanan lanjutan tidak tersedia atau tidak menyediakan
fungsi yang Anda butuhkan.
Dukungan untuk layanan lanjutan
Karena layanan tingkat lanjut adalah wrapper ringan di sekitar Google API, masalah apa pun yang terjadi saat menggunakannya biasanya merupakan masalah pada API yang mendasarinya, bukan pada Apps Script.
Jika Anda mengalami masalah saat menggunakan layanan lanjutan, laporkan masalah tersebut menggunakan petunjuk dukungan untuk API yang mendasarinya.