doGet và doPost trong Google Apps Script

Các ví dụ về doGet và doPost trong Google Apps Script

doGet và doPost Google Apps Script là gì ?

  1. doGet
  2. doPost
  3. Một số lỗi hay gặp khi code doGet và doPost
  4. Tham khảo code doGet và doPost

1. Hàm doGet trong Script Google

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

doGet và doPost trong Google Apps Script


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

Bài 01: Ví dụ cơ bản nhất về doGet - Google sheet


function doGet(e){

  const temp='Xin chao';

  return ContentService.createTextOutput(temp );
}



 Sau khi có đường dẫn: dùng app web hay winform truy cập lấy dữ liệu.

Tham gia trái huấn luyện coder

Bài 02: Ví dụ tạo JSON và xuất ra doGET


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);

}

 
Có thể viết code script google theo cách khác

Thay thế return ContentService.createTextOutput(val).setMimeType(ContentService.MimeType.JSON);

thành dòng code:   return ContentService.createTextOutput(val);

Bài 03: Ví dụ tạo JSON với sheet hiện tại


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);
}



  Ví dụ 04:

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

2. Hàm doPost 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

3. Một số lỗi hay gặp khi code doGet và doPost

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é.

 

 

4. Tham khảo code doGet và doPost

khóa học lập trình web apps script

Tham khảo khóa học Lập trình Apps Script

 

 

Bài viết liên quan:

Các ví dụ về doGet và doPost trong Google Apps Script