Mengapa data tidak tersimpan? Kemungkinan besar izin akses Google Web App belum diset ke "Anyone" (Siapa Saja) atau kode Apps Script Anda belum menangani metode doPost.
Langkah 1: Pastikan Setelan Deployment Google Apps Script Benar
- Buka Editor Google Apps Script Anda.
- Klik tombol Deploy (Terapkan) > New Deployment (Terapkan Baru).
- Pilih jenis: Web App.
- Setel Execute as (Jalankan sebagai):
Me (Saya).
- Setel Who has access (Siapa yang memiliki akses):
Anyone (Siapa saja).
- Klik Deploy dan berikan izin otorisasi Google.
Langkah 2: Salin Kode Apps Script Siap Pakai Ini
Ganti seluruh isi kode di Apps Script Anda dengan kode berikut, lalu simpan dan buat Deployment Baru:
function doGet(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var result = [];
for (var i = 1; i < data.length; i++) {
result.push({
id: data[i][0],
tanggal: data[i][1],
jenis: data[i][2],
keterangan: data[i][3],
nominal: data[i][4]
});
}
return ContentService.createTextOutput(JSON.stringify({ status: 'success', data: result }))
.setMimeType(ContentService.MimeType.JSON);
}
function doPost(e) {
try {
var contents = JSON.parse(e.postData.contents);
var action = contents.action;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if (action === 'create') {
var d = contents.data;
sheet.appendRow([d.id, d.tanggal, d.jenis, d.keterangan, d.nominal]);
return ContentService.createTextOutput(JSON.stringify({ status: 'success', message: 'Data berhasil disimpan' }))
.setMimeType(ContentService.MimeType.JSON);
}
} catch(err) {
return ContentService.createTextOutput(JSON.stringify({ status: 'error', message: err.toString() }))
.setMimeType(ContentService.MimeType.JSON);
}
}