Jika membuat antarmuka pengguna untuk skrip, Anda dapat memublikasikan skrip sebagai aplikasi web. Misalnya, skrip yang memungkinkan pengguna menjadwalkan janji temu dengan anggota tim dukungan sebaiknya ditampilkan sebagai aplikasi web sehingga pengguna dapat mengaksesnya langsung dari browser mereka.
Skrip mandiri dan skrip yang terikat dengan aplikasi dapat diubah menjadi aplikasi web, selama memenuhi persyaratan di bawah.
Persyaratan untuk aplikasi web
Skrip dapat dipublikasikan sebagai aplikasi web jika memenuhi persyaratan berikut:
- Fungsi ini berisi fungsi
doGet(e)
ataudoPost(e)
. - Fungsi ini menampilkan objek layanan HTML
HtmlOutput
atau Layanan kontenTextOutput
.
Parameter permintaan
Saat pengguna mengunjungi aplikasi atau program mengirim permintaan GET
HTTP ke aplikasi, Apps Script akan menjalankan fungsi doGet(e)
. Saat program mengirim permintaan POST
HTTP ke aplikasi, Apps Script akan menjalankan doPost(e)
. Dalam kedua kasus tersebut, argumen e
mewakili parameter peristiwa yang dapat berisi informasi tentang parameter permintaan apa pun. Struktur objek peristiwa ditampilkan dalam tabel di bawah ini:
Kolom | |
---|---|
e.queryString |
Nilai bagian string kueri dari 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 seperti 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 |
Misalnya, Anda dapat meneruskan parameter seperti username
dan age
ke URL seperti yang ditunjukkan di bawah:
https://script.google.com/.../exec?username=jsmith&age=21
Kemudian, Anda dapat menampilkan parameter seperti ini:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
Dalam contoh di atas, doGet(e)
menampilkan output berikut:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Men-deploy skrip sebagai aplikasi web
Untuk men-deploy skrip sebagai aplikasi web, ikuti langkah-langkah berikut:
- Di kanan atas project skrip, klik Deploy > Deployment baru.
- Di samping "Pilih jenis", klik Aktifkan jenis deployment > Aplikasi web.
- Masukkan informasi tentang aplikasi web Anda di kolom pada "Konfigurasi deployment".
- Klik Deploy.
Anda dapat membagikan URL aplikasi web kepada orang yang ingin menggunakan aplikasi Anda, asalkan Anda telah memberi mereka akses.
Menguji deployment aplikasi web
Untuk menguji skrip sebagai aplikasi web, ikuti langkah-langkah di bawah:
- Di kanan atas project skrip, klik Deploy > Test deployment.
- Di samping "Pilih jenis", klik Aktifkan jenis deployment > Aplikasi web.
- Di bagian URL aplikasi web, klik Salin.
Tempelkan URL di browser dan uji aplikasi web Anda.
URL ini diakhiri dengan
/dev
dan hanya dapat diakses oleh pengguna yang memiliki akses edit ke skrip. Instance aplikasi ini selalu menjalankan kode terbaru yang disimpan dan hanya ditujukan untuk pengujian selama pengembangan.
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, terlepas dari siapa 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 memberi otorisasi akses.
Menyematkan aplikasi web di Google Sites
Untuk menyematkan aplikasi web di Google Sites, aplikasi tersebut harus
di-deploy terlebih dahulu. Anda juga
memerlukan URL yang Di-deploy 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 bingkai di pratinjau halaman. Saat memublikasikan halaman, penonton situs Anda mungkin perlu memberikan otorisasi ke aplikasi web sebelum dijalankan secara normal. Aplikasi web yang tidak sah menampilkan perintah otorisasi kepada pengguna.
Aplikasi Web dan Histori Browser
Sebaiknya aplikasi web Apps Script menyimulasikan aplikasi multi-halaman, atau aplikasi dengan UI dinamis yang dikontrol melalui parameter URL. Untuk melakukannya dengan baik, Anda dapat menentukan objek status untuk mewakili UI atau halaman aplikasi, dan mendorong status ke histori browser saat pengguna membuka kembali dan membuka aplikasi dengan tombol browser. Anda juga dapat memproses peristiwa histori sehingga aplikasi web menampilkan UI yang benar saat pengguna membuka kembali dan membuka aplikasi dengan tombol browser. Dengan membuat kueri parameter URL pada waktu pemuatan, Anda dapat membuat aplikasi membuat UI secara dinamis berdasarkan parameter tersebut, sehingga pengguna dapat memulai aplikasi dalam status tertentu.
Apps Script menyediakan dua JavaScript API sisi klien asinkron untuk membantu membuat aplikasi web yang ditautkan ke histori browser:
google.script.history
menyediakan metode untuk memungkinkan respons dinamis terhadap perubahan histori browser. Hal ini mencakup: mendorong status (Objek sederhana yang dapat Anda tentukan) ke histori browser, mengganti status teratas di data sebelumnya, dan menetapkan fungsi callback pemroses untuk merespons perubahan histori.google.script.url
menyediakan cara untuk mengambil parameter URL dan fragmen URL halaman saat ini, jika ada.
API histori ini hanya tersedia untuk aplikasi web. Fitur ini tidak didukung untuk sidebar, dialog, atau add-on. Fungsi ini juga tidak direkomendasikan untuk digunakan di aplikasi web yang disematkan di Google Sites.