คำสั่ง doGet()
doGet()
เป็นฟังก์ชันหลักที่ใช้สำหรับ สร้างหน้าเว็บของ Web App ด้วย Google Apps Script โดยใช้ไฟล์ HTML เป็นฐานในการแสดงผลบนเบราว์เซอร์เมื่อมีการเข้าถึง Web App แบบ GET request (เปิดหน้าเว็บตาม URL ของ Web App)
function doGet() { return HtmlService.createTemplateFromFile('index').evaluate() .setTitle("Project Kru Chian") .setFaviconUrl("https://semicon.github.io/img/logo2small.png") .addMetaTag('viewport', 'width=device-width , initial-scale=1') .setSandboxMode(HtmlService.SandboxMode.IFRAME) .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL) }
🔍 อธิบายแต่ละบรรทัดอย่างละเอียด
-
ฟังก์ชัน
doGet()
เป็นฟังก์ชันพิเศษใน Google Apps Script ที่ทำงานเมื่อผู้ใช้เข้าถึง Web App แบบ HTTP GET request (เช่น เปิด URL) - มักใช้ในการสร้างหน้า HTML หรือส่งข้อมูลแบบ JSON ก็ได้
HtmlService.createTemplateFromFile('index')
:- เรียกใช้ไฟล์ HTML ที่ชื่อว่า
index.html
(คุณต้องมีไฟล์นี้ในโปรเจกต์) - ใช้
createTemplateFromFile
เพื่อให้สามารถใส่ ตัวแปรหรือสคริปต์ฝั่งเซิร์ฟเวอร์ (Google Apps Script) ลงใน HTML ผ่าน<?!= someVar ?>
ได้ .evaluate()
:- ประมวลผล template HTML และแปลงเป็น
HtmlOutput
ที่สามารถส่งกลับให้ผู้ใช้ดูได้ในเบราว์เซอร์
- ตั้งชื่อ title ของหน้าเว็บ ซึ่งจะแสดงที่แท็บของเบราว์เซอร์ว่า "Project Kru Chian"
- ตั้งค่า favicon (ไอคอนที่แสดงในแท็บของเบราว์เซอร์)
- ใช้ URL ของไฟล์ภาพที่โฮสต์อยู่ภายนอก
- เพิ่ม meta tag เพื่อควบคุม การแสดงผลบนอุปกรณ์พกพา (responsive design)
- คำว่า
viewport
หมายถึงหน้าต่างการแสดงผลของเบราว์เซอร์ width=device-width
หมายถึง ให้ใช้ความกว้างของอุปกรณ์initial-scale=1
หมายถึง ซูม 100% ตอนโหลด
- กำหนดโหมด sandbox ของ HTML output
IFRAME
คือให้โหลด HTML นี้ใน<iframe>
ซึ่งมีความปลอดภัยสูงกว่า และสามารถใช้ CSS และ JavaScript ได้มากกว่าNATIVE
mode- หมายเหตุ: ปัจจุบัน Google อาจไม่จำเป็นต้องใช้บรรทัดนี้เสมอไป เพราะมี default อยู่แล้ว
- ปกติ Google จะไม่อนุญาตให้ Web App ที่คุณสร้าง ถูกโหลดจาก
<iframe>
ในเว็บอื่นๆ (เพื่อความปลอดภัย) - บรรทัดนี้เป็นการ อนุญาตให้สามารถโหลด Web App นี้ผ่าน iframe จากทุกโดเมน ได้
- ใช้เมื่อคุณต้องฝัง Web App ไว้ในเว็บอื่น (เช่น HTML page หรือเว็บไซต์ส่วนตัว)
🧩 สรุปแบบเข้าใจง่าย
โค้ดนี้สร้างหน้าเว็บจากไฟล์ index.html
พร้อมปรับแต่ง UI/UX ดังนี้:
- ✅ ใช้ HTML template พร้อมฝั่ง Apps Script ได้
- 🧭 ตั้งชื่อหน้าเว็บ และ favicon
- 📱 รองรับมือถือ (responsive)
- 🧷 อนุญาตให้โหลดผ่าน iframe ได้ทุกเว็บ
- 📦 ใช้ iframe เป็น sandbox เพื่อให้ใช้ CSS/JS ได้หลากหลาย