Sebenarnya
Google Doc bukan merupakan layanan untuk membuat aplikasi-aplikasi semacam ini. Membuat formulir kontak menggunakan
Google Doc hanya bisa menampilkan pesan di
spreadsheet, dan bukannya langsung menuju kotak masuk pesan seperti yang kita kehendaki. Karena fungsi utama
Google Doc pada dasarnya memang bukan untuk membuat formulir kontak semacam itu, melainkan untuk membuat formulir yang terintegrasi dengan dokumen, sehingga ini memungkinkan pengguna untuk bisa mengirimkan data secara
online. Dan dari formulir itulah data bisa langsung terkirim dan akan tersimpan ke dalam dokumen berbentuk tabel.
Blogger Xpertise memiliki solusi agar data pesan yang dikirimkan melalui formulir
Google Doc bisa langsung terkirim menuju pesan masuk email Anda seperti ini:
Di sini Saya akan menjelaskan langkah-langkah pembuatan formulir kontak dimulai dari awal sampai akhir. Ada dua bagian utama yang harus Anda kerjakan di sini, yaitu membuat formulir kontak dan mengelola
spreadsheet yang terkait dengan formulir kontak tersebut.
Di sini Anda akan diajak untuk membuat formulir kontak menggunakan
Google Doc.
Pertama-tama buka halaman dasbor
Google Drive Anda, lalu buat sebuah formulir:
Tentukan judul dan deskripsi formulir, serta buat beberapa kotak pertanyaan yang umum terdapat pada formulir kontak di web. Misalnya:
Perihal,
Nama,
Email,
Alamat Web dan
Pesan:
Pada bagian
Laman Konfirmasi, tuliskan pesan terima kasih yang ingin Anda tampilkan ketika pesan telah berhasil terkirim:
Klik tombol
Kirim Formulir. Akan muncul kotak dialog baru. Klik tombol
Sematkan. Di situ Anda akan diberi kode
embed formulir kontak yang bisa Anda pasang pada halaman web Anda. Atau Anda juga bisa melihat hasil jadinya pada halaman formulir khusus dengan menekan tombol
Lihat Bentuk Jadi di panel atas, tepat di bawah menu utama.
Klik tombol
Pilih Tujuan Tanggapan, lalu cek opsi
Spreasheet baru. Berikan judul, misalnya
Data Tanggapan:
Klik tombol
Buat. Tunggu sampai tombol
Lihat Tanggapan muncul. Pada tampilan
Google Doc saat ini, tombol
Lihat Tanggapan akan muncul untuk menggantikan tombol
Pilih Tujuan Tanggapan. Klik tombol tersebut untuk melihat
spreadsheet formulir kontak Anda.
Mengelola Data yang Masuk
Setelah
spreadsheet tercipta, sekarang adalah saatnya untuk mengelola data yang masuk agar setiap kali data baru terkirim ke dokumen, maka salinan data tersebut bisa langsung masuk ke kotak pesan email.
Pilih menu
Alat » Editor skrip:
Anda akan dibawa menuju halaman proyek tak berjudul. Pada formulir bernama
Kode.gs
tempelkan JavaScript ini:
1code-line:1-12code-line:1-23code-line:1-34code-line:1-45code-line:1-56code-line:1-67code-line:1-78code-line:1-89code-line:1-910code-line:1-1011code-line:1-1112code-line:1-1213code-line:1-1314code-line:1-1415code-line:1-1516code-line:1-1617code-line:1-1718code-line:1-1819code-line:1-1920code-line:1-2021code-line:1-2122code-line:1-2223code-line:1-2324code-line:1-2425code-line:1-2526code-line:1-2627code-line:1-2728code-line:1-2829code-line:1-2930code-line:1-3031code-line:1-3132code-line:1-3233code-line:1-3334code-line:1-3435code-line:1-3536code-line:1-3637code-line:1-3738code-line:1-3839code-line:1-3940code-line:1-4041code-line:1-4142code-line:1-42function sendFormByEmail(e) {
var emailSubject = "PESAN BARU!";
var yourEmail = "email@domain.com";
var docKey = "0Ah0bOy8H_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var useEditors = 1;
var extraColumns = 0;
if (useEditors) {
var editors = DocsList.getFileById(docKey).getEditors();
var notify = (editors) ? editors.join(',') : yourEmail;
} else {
var notify = yourEmail;
}
var s = SpreadsheetApp.getActive().getSheetByName("Data1");
if (extraColumns) {
var headers = s.getRange(1, 1, 1, extraColumns).getValues()[0];
} else {
var headers = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
var message = "";
}
for (var i in headers) {
message += headers[i] + ' = ' + e.values[i].toString() + '\n';
}
MailApp.sendEmail(notify, emailSubject, message);
}
Tentukan subjek email, alamat email dan kunci/ID
spreadsheet yang tadi Anda buat. ID
spreadsheet bisa Anda temukan pada URL
spreadsheet terkait:
https://docs.google.com/spreadsheet/ccc?key=0Ah0bOy8H_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#gid=0
Data1
adalah nama
sheet. Pastikan nilainya sama dengan
sheet terkait:
Sekarang pilih menu
Sumber Daya » Pemicu proyek saat ini. Akan muncul kata “No triggers set up. Click to add one now”. Klik pada tautan tersebut untuk menambahkan
triggerPemicu. Pada kolom
Events, pastikan opsi yang terpilih adalah
From spreadsheet dan
On form submit.
Klik opsi
notification. Pada opsi ke dua di kotak dialog
Execution failure notifications, pilih
immediately.
Klik
OK.
Akan muncul pesan authorisasi skrip. Klik tombol
Terima/Authorize. Ini akan menyetujui authorisasi untuk
triggerPemicu yang Anda buat.
Anda akan dibawa kembali menuju layar editor. Klik
Simpan/Save. Sekarang Anda sudah bisa mencoba mengirimkan pesan melalui formulir kontak buatan Anda. Pembuatan formulir kontak ini sudah selesai.
Setelah ini mungkin Anda akan menerima pesan
error ke kotak pesan email. Beruntung jika tidak. Selebihnya hanyalah mengenai pemecahan masalah
error yang terjadi. Saya pribadi belum pernah mengalami masalah-masalah yang rumit. Jadi Saya masih belum bisa membuat daftar kemungkinan
error yang terjadi di sini. Berikut ini adalah beberapa hal yang perlu diperhatikan menurut
Blogger Xpertise:
- Pastikan nama sheet tidak mengandung karakter spasi. Ini mungkin bisa menimbulkan error ⇐ Sheet Saya mengandung karakter spasi, tetapi Saya tidak mengalami masalah itu.
- Jangan sampai ada kolom yang kosong yang Anda tambahkan ke dalam spreadsheet kontak. Ini akan menciptakan masalah pada perataan data yang masuk serta membuat skrip gagal bekerja ⇐ Saya mengalami masalah ini sebelumnya gara-gara menambahkan dan memindahkan kolom baru, serta karena menambahkan field pertanyaan baru pada formulir kontak yang Saya buat. Jadi pastikan formulir yang Anda buat sudah benar-benar menetap.
- Nama kolom terkadang juga dapat menimbulkan masalah. Pastikan Anda membuat nama kolom/pertanyaan formulir dengan karakter teks yang standar.
Menonaktifkan Notifikasi pada Kiriman Email Spam
Karena formulir kontak ini tidak memiliki
captcha maka seringkali Anda akan mendapatkan pesan-pesan aneh yang datang entah dari mana. Berikut ini adalah sebuah cara untuk membuat agar pesan notifikasi tidak dikirimkan ke email Anda jika submisi pesan yang dilakukan terdeteksi sepagai spam:
1code-line:3-12code-line:3-23code-line:3-34code-line:3-45code-line:3-56code-line:3-67code-line:3-78code-line:3-89code-line:3-910code-line:3-1011code-line:3-1112code-line:3-1213code-line:3-1314code-line:3-1415code-line:3-1516code-line:3-1617code-line:3-1718code-line:3-1819code-line:3-1920code-line:3-2021code-line:3-2122code-line:3-2223code-line:3-2324code-line:3-2425code-line:3-2526code-line:3-2627code-line:3-2728code-line:3-2829code-line:3-2930code-line:3-3031code-line:3-3132code-line:3-3233code-line:3-3334code-line:3-3435code-line:3-3536code-line:3-3637code-line:3-3738code-line:3-3839code-line:3-3940code-line:3-4041code-line:3-4142code-line:3-4243code-line:3-4344code-line:3-4445code-line:3-4546code-line:3-4647code-line:3-4748code-line:3-4849code-line:3-4950code-line:3-5051code-line:3-5152code-line:3-5253code-line:3-5354code-line:3-5455code-line:3-5556code-line:3-5657code-line:3-5758code-line:3-5859code-line:3-5960code-line:3-60function sendFormByEmail(e) {
var emailSubject = "PESAN BARU!";
var yourEmail = "email@domain.com";
var docKey = "0Ah0bOy8H_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var useEditors = 1;
var extraColumns = 0;
if (useEditors) {
var editors = DocsList.getFileById(docKey).getEditors();
var notify = (editors) ? editors.join(',') : yourEmail;
} else {
var notify = yourEmail;
}
var isSpam = 0;
var spamKeywords = [
/beijing escort|louis vuitton|www\.nama_web_1\.com|www\.nama_web_2\.com/i,
/(buy|cheap)(ing|est)/i,
/fuck|shit|sex|xxx/i
...
...
];
var s = SpreadsheetApp.getActive().getSheetByName("Data1");
if (extraColumns) {
var headers = s.getRange(1, 1, 1, extraColumns).getValues()[0];
} else {
var headers = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
var message = "";
}
for (var i in headers) {
message += headers[i] + ' = ' + e.values[i].toString() + '\n';
for (var j = 0, sk = spamKeywords.length; j < sk; ++j) {
if (spamKeywords[j].test(e.values[i].toString())) isSpam++;
}
}
if (isSpam === 0) {
MailApp.sendEmail(notify, emailSubject, message);
}
}
Anda bisa mengatur pola spam pada variabel
spamKeywords
sesuka hati dengan jumlah pola sebanyak yang Anda mau dalam bentuk
regular ekspresi. Jika Anda tidak mengerti atau belum menguasai regular ekspresi, Anda bisa menggunakan deteksi spam yang lebih sederhana menggunakan pengecekan indeks teks:
var spamKeywords = [
"beijing escort"
"louis vuitton"
"www.nama_web_1.com",
"www.nama_web_2.com",
"buy",
"cheap",
...
...
];
if (e.values[i].toString().indexOf(spamKeywords[j]) > -1) isSpam++;
Walaupun begitu, cara ini hanya bisa digunakan untuk mencegah terkirimnya notifikasi pesan masuk saja jika pesan yang dikirimkan adalah pesan spam, dan tidak bisa mencegah terkirimnya data pesan spam ke dalam
spreadsheet. Saya sarankan Anda untuk secara rutin membuka
sheet terkait formulir kontak ini minimal setiap satu bulan sekali untuk menghapus data-data yang tidak diperlukan. Karena Saya tidak bisa menjamin tentang apa yang akan terjadi pada data
Google Doc Anda jika jumlah data yang masuk nanti sudah terlalu besar.
Bacaan Lebih Lanjut