Publikasikan skrip sebagai aplikasi web jika Anda membuat antarmuka pengguna untuknya. Misalnya, skrip yang memungkinkan pengguna menjadwalkan janji temu dengan anggota tim dukungan sebaiknya ditampilkan sebagai aplikasi web agar pengguna dapat mengaksesnya langsung dari browser mereka.
Skrip mandiri dan skrip yang terikat ke aplikasi Google Workspace dapat diubah menjadi aplikasi web, selama memenuhi persyaratan berikut.
Persyaratan untuk aplikasi web
Skrip dapat dipublikasikan sebagai aplikasi web jika memenuhi persyaratan berikut:
- Berisi fungsi
doGetataudoPost. - Fungsi ini menampilkan objek layanan HTML
HtmlOutputatau objek layanan KontenTextOutput.
Parameter permintaan
Saat pengguna mengunjungi aplikasi atau program mengirimkan permintaan GET HTTP ke aplikasi, Google Apps Script menjalankan fungsi doGet. Saat program mengirim permintaan POST HTTP ke aplikasi, Apps Script akan menjalankan doPost. Dalam
kedua kasus, argumen e merepresentasikan parameter peristiwa yang dapat berisi
informasi tentang parameter permintaan apa pun. Struktur objek peristiwa ditampilkan dalam tabel berikut:
| Kolom | |
|---|---|
e.queryString |
Nilai bagian string kueri URL, atau name=alice&n=1&n=2 |
e.parameter |
Objek pasangan nilai kunci yang sesuai dengan parameter permintaan. Hanya nilai pertama yang ditampilkan untuk parameter yang memiliki beberapa nilai. {"name": "alice", "n": "1"} |
e.parameters |
Objek yang mirip dengan {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Jalur URL setelah |
e.contextPath |
Tidak digunakan, selalu berupa string kosong. |
e.contentLength |
Panjang isi permintaan untuk permintaan POST, atau 332 |
e.postData.length |
Sama dengan 332 |
e.postData.type |
Jenis MIME isi POST text/csv |
e.postData.contents |
Teks konten isi POST Alice,21 |
e.postData.name |
Selalu nilai "postData" postData |
Teruskan parameter seperti username dan age ke URL seperti berikut:
https://script.google.com/.../exec?username=jsmith&age=21
Tampilkan parameter seperti ini:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
Dalam contoh sebelumnya, doGet menampilkan output berikut:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Nama parameter berikut dicadangkan oleh sistem dan tidak boleh digunakan dalam parameter URL atau isi POST:
csid
Penggunaan parameter ini dapat menghasilkan respons HTTP 405 dengan pesan error "Maaf, file yang Anda minta tidak ada". Jika memungkinkan, perbarui skrip Anda untuk menggunakan nama parameter yang berbeda.
Men-deploy skrip sebagai aplikasi web
Untuk men-deploy skrip sebagai aplikasi web, ikuti langkah-langkah berikut:
- Di kanan atas project skrip, klik Deploy > New deployment.
- Di samping "Pilih jenis", klik Aktifkan jenis deployment > Aplikasi web.
- Masukkan informasi tentang aplikasi web Anda di kolom pada bagian "Konfigurasi deployment".
- Klik Deploy.
Bagikan URL aplikasi web kepada orang yang ingin Anda izinkan menggunakan aplikasi, asalkan Anda telah memberi mereka akses.
Aplikasi web yang di-deploy di satu domain akan berhenti berfungsi jika kepemilikannya berubah menjadi drive bersama atau akun di domain lain. Hal ini dapat diperbaiki dengan meminta pemilik atau kolaborator baru men-deploy ulang aplikasi web di domain baru. Atau, jika aplikasi web dipindahkan kembali ke domain aslinya, aplikasi web akan mulai berfungsi lagi untuk domain tersebut tanpa di-deploy ulang.
Menguji deployment aplikasi web
Untuk menguji skrip sebagai aplikasi web, ikuti langkah-langkah di bawah:
- Di kanan atas project skrip, klik Deploy > Test deployments.
- Di samping "Pilih jenis", klik Aktifkan jenis deployment > Aplikasi web.
- Di bagian URL aplikasi web, klik Salin.
Tempelkan URL di browser Anda dan uji aplikasi web Anda.
URL ini diakhiri dengan
/devdan hanya dapat diakses oleh pengguna yang memiliki akses edit ke skrip. Instance aplikasi ini selalu menjalankan kode yang disimpan paling baru dan hanya ditujukan untuk pengujian selama pengembangan.
Untuk menguji fitur OAuth terperinci di aplikasi web, pastikan project Anda belum memiliki beberapa otorisasi.
Untuk membatalkan otorisasi yang ada, gunakan
ScriptApp.invalidateAuth.
Untuk aplikasi web yang sudah di-deploy dan berjalan
dengan identitas pengguna aktif, ubah kolom JSON executeAs
di manifest
menjadi USER_DEPLOYING.
Saat men-deploy aplikasi web untuk dijalankan sebagai developer, berhati-hatilah saat menangani token OAuth yang diperoleh melalui ScriptApp.getOAuthToken. Token ini dapat memberikan akses ke data Anda kepada aplikasi lain — jangan pernah mengirimkannya ke klien.
Izin
Izin untuk aplikasi web berbeda-beda, bergantung pada cara Anda memilih untuk menjalankan aplikasi:
- Jalankan aplikasi sebagai saya—Dalam hal ini, skrip selalu dijalankan sebagai Anda, pemilik skrip, siapa pun yang mengakses aplikasi web.
- Menjalankan aplikasi sebagai pengguna yang mengakses aplikasi web—Dalam hal ini, skrip berjalan dengan identitas pengguna aktif yang menggunakan aplikasi web. Pendekatan izin ini menyebabkan aplikasi web menampilkan email pemilik skrip saat pengguna mengizinkan akses.
Untuk mencegah penyalahgunaan, Apps Script memberlakukan batasan pada kecepatan pengguna baru dapat mengizinkan aplikasi web yang dijalankan sebagai pengguna. Batas ini bergantung, antara lain, pada apakah akun penerbitan merupakan bagian dari domain Google Workspace.
Berkolaborasi di aplikasi web menggunakan drive bersama. Saat aplikasi web di drive bersama di-deploy, memilih untuk "jalankan sebagai Anda" akan menyebabkan aplikasi web dijalankan di bawah otoritas pengguna yang men-deploy-nya (karena tidak ada pemilik skrip).
Menyematkan aplikasi web di Google Sites {:#embed-web-app}
Aplikasi web sematan masih tunduk pada izin akses untuk mencegah penggunaan berbahaya. Jika aplikasi web sematan Anda tampaknya tidak berfungsi, periksa apakah izin yang ditetapkan oleh pemilik aplikasi web dan administrator domain mengizinkan penggunaannya.
Untuk menyematkan aplikasi web di Sites, aplikasi tersebut harus di-deploy terlebih dahulu. Anda juga memerlukan Deployed URL dari dialog Deploy.
Untuk menyematkan aplikasi web ke halaman Sites, ikuti langkah-langkah berikut:
- Buka halaman Sites tempat Anda ingin menambahkan aplikasi web.
- Pilih Sisipkan > Sematkan URL.
- Tempelkan URL aplikasi web, lalu klik TAMBAHKAN.
Aplikasi web muncul dalam frame di pratinjau halaman. Saat Anda memublikasikan halaman, penonton situs Anda mungkin perlu mengizinkan aplikasi web sebelum aplikasi tersebut dieksekusi secara normal. Aplikasi web yang tidak sah menampilkan dialog otorisasi kepada pengguna.
Aplikasi Web dan Histori Browser
Untuk menyimulasikan aplikasi multi-halaman, atau aplikasi dengan UI dinamis yang dikontrol menggunakan parameter URL, tentukan objek status untuk merepresentasikan UI atau halaman aplikasi, dan teruskan status ke histori browser saat pengguna menjelajahi aplikasi Anda. Dengarkan peristiwa histori sehingga aplikasi web Anda menampilkan UI yang benar saat pengguna kembali dan maju dengan tombol browser. Dengan membuat kueri parameter URL pada waktu pemuatan, aplikasi Anda akan membangun UI secara dinamis berdasarkan parameter tersebut, sehingga pengguna dapat memulai aplikasi dalam status tertentu.
Apps Script menyediakan dua API JavaScript sisi klien asinkron untuk membantu pembuatan aplikasi web yang ditautkan ke histori browser:
google.script.historymenyediakan metode untuk memungkinkan respons dinamis terhadap perubahan histori browser. Hal ini mencakup: mengirimkan status (Objek sederhana yang Anda tentukan) ke histori browser, mengganti status teratas dalam stack histori, dan menyetel fungsi callback pendengar untuk merespons perubahan histori.google.script.urlmenyediakan cara untuk mengambil parameter URL dan fragmen URL halaman saat ini, jika ada.
API histori ini hanya tersedia untuk aplikasi web. Iklan tersebut tidak didukung untuk sidebar, dialog, atau add-on. Fungsi ini juga tidak direkomendasikan untuk digunakan di aplikasi web yang disematkan di Sites.