doGet là hàm trong Google Apps Script giúp ta lấy dữ liệu từ Google Sheet, dữ liệu lấy về có thể dạng Text, JSON ... thông qua HTML, từ đó ta có thể sử dụng JAVASCRIPT hay JQUERY để bóc tách xử lý dữ liệu.
doPost là hàm trong Google Apps Script giúp ta gởi dữ liệu từ trang web do ta thiết kế (đoạn html), khi đó ta viết code Google Apps Scripts để bóc tách và đưa dữ liệu đó vào các hàng của Google Sheet.
Hướng dẫn các lập trình chèn dữ liệu vào SQL Server khi thêm dòng Google Sheet
Bạn đang có 1 file google sheet, bạn cần nghiệp vụ:
Khi có ai đó thêm dữ liệu vào google sheet thì sẽ tự động chèn dữ liệu này vào cơ sỡ dữ liệu SQL Server
function doGet(e){
const temp='Xin chao';
return ContentService.createTextOutput(temp );
}
function doGet(e){
const Myobj=[
{TT:1,Ten:'Nhat'},
{TT:2,Ten:'My'},
];
const val= JSON.stringify(Myobj);
//Logger.log(val);
return ContentService.createTextOutput(val).setMimeType(ContentService.MimeType.JSON);
}
Thay thế return ContentService.createTextOutput(val).setMimeType(ContentService.MimeType.JSON);
thành dòng code: return ContentService.createTextOutput(val);
function doGet(e){
const ID='15f7JTQBCu-VDtckq5i2aoie7Csvc0laRO1cZ61FpBT4';
const ss= SpreadsheetApp.openById(ID);
const data = ss.getSheets()[0].getDataRange().getValues();
const val= JSON.stringify(data);
//Logger.log(val);
return ContentService.createTextOutput(val).setMimeType(ContentService.MimeType.JSON);
}
function doGet(){
var appData = {
"heading": "Hello World!",
"body": "Welcome to the web app iif."
};
var JSON_String = JSON.stringify(appData);
var JSONOutput = ContentService.createTextOutput(JSON_String );
JSONOutput.setMimeType(ContentService.MimeType.JSON);
return JSONOutput
}
Các video ví dụ về hàm doGet trong script google
Trước tiên bạn cần tạo 1 spreadsheets, sau đó vào Tiện ích -> Apps Script
Sau đó gõ đoạn code dưới vào:
function doPost(e)
{
try {
let data= e.parameter;
var sheet= SpreadsheetApp.getActive().getActiveSheet();
sheet.appendRow([data.NoiDung]);
return ContentService.createTextOutput("Thêm thành công !");
}
catch(ex)
{
return ContentService.createTextOutput("LỖI:"+ex);
}
}
Vào mục triển khai -> Tạo ứng dụng web -> Có URL xuất hiện
Tạo 1 file html có mẫu:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nhập liệu</title>
</head>
<body>
<form action="Copy_URL_SAU_KHI_TRIEN_KHAI" method="post">
<div>
<label >Nội dung:</label>
<input type="text" name="NoiDung" >
</div>
<div><button type="submit">Đăng ký</button></div>
</form>
</body>
</html>
Sau đó chạy file HTML nhập liệu vào và click ĐĂNG KÝ sau đó xem kết quả
* Danh sách video ví dụ hàm doPost trong Script Google
https://youtu.be/tjx2XVd5u_k
https://youtu.be/pcHp6abpVDQ
https://youtu.be/d5rUYSx_S_o
Một số lỗi khi sử dụng doPost
1. Yêu cầu Cross-Origin bị chặn: Chính sách Same Origin không cho phép đọc tài nguyên từ xa ở https://script.google.com/macros/s/AKfycbzdyTd9f-HAkDVxkjxocpWYTh8cbvi5Q7405ciRGj1qhqJM-6JxS6Wvv-Ishq5dJFigVA/exec.
(Lý do: CORS header thiếu ‘Access-Control-Allow-Origin’). Mã trạng thái: 401
Cách xử lý: Chú ý đoạn tìm tìm sheet
const sheets = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/13Ch3R4hUUv7_5VhYEW84tJJDEFpHE0YVBuYufV4qLeo/edit#gid=0");
* Đường dẫn sai
const sheet = sheets.getSheetByName("sheet1");
* Tên sheet sai
2. Lỗi không rõ ràng : không thông báo gì cho người dùng.
Lỗi do url api chỉ cho 1 người chỉ định truy cập.
Cách xử lý: khi tạo ứng dụng url thì chọn lại [Bất kỳ ai]
* Nếu để [bất kỳ tài khoản google] vẫn lỗi nhé.
Tham khảo khóa học Lập trình Apps Script
Các ví dụ về doGet và doPost trong Google Apps Script