หากสร้างอินเทอร์เฟซผู้ใช้สำหรับสคริปต์ คุณจะเผยแพร่สคริปต์เป็น เว็บแอปได้ ตัวอย่างเช่น สคริปต์ที่ให้ผู้ใช้กำหนดเวลานัดหมายกับ สมาชิกในทีมสนับสนุนควรแสดงเป็นเว็บแอปเพื่อให้ ผู้ใช้เข้าถึงได้โดยตรงจากเบราว์เซอร์
ทั้งสคริปต์แบบสแตนด์อโลนและ สคริปต์ที่เชื่อมโยงกับ Google Workspace แอปพลิเคชัน สามารถเปลี่ยนเป็น เว็บแอปได้ ตราบใดที่สคริปต์เป็นไปตามข้อกำหนดด้านล่าง
ข้อกำหนดสำหรับเว็บแอป
คุณจะเผยแพร่สคริปต์เป็นเว็บแอปได้หากเป็นไปตามข้อกำหนดต่อไปนี้
- มีฟังก์ชัน
doGet(e)
หรือdoPost(e)
- ฟังก์ชันจะแสดงผลออบเจ็กต์ HTML Service
HtmlOutput
หรือออบเจ็กต์ Content ServiceTextOutput
พารามิเตอร์คำขอ
เมื่อผู้ใช้เข้าชมแอปหรือโปรแกรมส่งคำขอ HTTP GET
ไปยังแอป
Apps Script จะเรียกใช้ฟังก์ชัน doGet(e)
เมื่อโปรแกรมส่งคำขอ HTTP
POST
ไปยังแอป Apps Script จะเรียกใช้ doPost(e)
แทน ในทั้ง 2 กรณี e
อาร์กิวเมนต์จะแสดงถึงพารามิเตอร์เหตุการณ์ซึ่งอาจมีข้อมูลเกี่ยวกับพารามิเตอร์คำขอ
โครงสร้างของออบเจ็กต์เหตุการณ์แสดงอยู่ในตาราง
ด้านล่าง
ช่อง | |
---|---|
e.queryString |
ค่าของส่วนสตริงการค้นหาของ URL หรือ name=alice&n=1&n=2 |
e.parameter |
ออบเจ็กต์ของคู่คีย์/ค่าที่สอดคล้องกับพารามิเตอร์คำขอ ระบบจะแสดงค่าแรกเท่านั้นสำหรับพารามิเตอร์ที่มีหลายค่า {"name": "alice", "n": "1"} |
e.parameters |
ออบเจ็กต์ที่คล้ายกับ {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
เส้นทาง URL หลัง |
e.contextPath |
ไม่ได้ใช้ เป็นสตริงว่างเสมอ |
e.contentLength |
ความยาวของเนื้อความคำขอสำหรับคำขอ POST หรือ 332 |
e.postData.length |
เหมือนกับ 332 |
e.postData.type |
ประเภท MIME ของเนื้อความ POST text/csv |
e.postData.contents |
ข้อความเนื้อหาของเนื้อความ POST Alice,21 |
e.postData.name |
ค่า "postData" เสมอ postData |
เช่น คุณสามารถส่งพารามิเตอร์อย่าง username
และ age
ไปยัง URL ได้ดังที่แสดงด้านล่าง
https://script.google.com/.../exec?username=jsmith&age=21
จากนั้นคุณจะแสดงพารามิเตอร์ได้ดังนี้
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
ในตัวอย่างด้านบน doGet(e)
จะแสดงผลลัพธ์ต่อไปนี้
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
ใช้งานสคริปต์เป็นเว็บแอป
หากต้องการทําให้สคริปต์ใช้งานได้ในรูปแบบเว็บแอป ให้ทําตามขั้นตอนต่อไปนี้
- ที่ด้านขวาบนของโปรเจ็กต์สคริปต์ ให้คลิกติดตั้งใช้งาน > การติดตั้งใช้งานใหม่
- คลิกเปิดใช้ประเภทการติดตั้งใช้งาน > เว็บแอป ข้าง "เลือกประเภท "
- ป้อนข้อมูลเกี่ยวกับเว็บแอปในช่องต่างๆ ในส่วน "การกำหนดค่าการ ติดตั้งใช้งาน"
- คลิกทำให้ใช้งานได้
คุณสามารถแชร์ URL ของเว็บแอปกับผู้ที่ต้องการให้ใช้แอปของคุณได้ โดยคุณต้องให้สิทธิ์เข้าถึงแก่ผู้ใช้เหล่านั้นก่อน
ทดสอบการติดตั้งใช้งานเว็บแอป
หากต้องการทดสอบสคริปต์เป็นเว็บแอป ให้ทำตามขั้นตอนด้านล่าง
- ที่ด้านขวาบนของโปรเจ็กต์สคริปต์ ให้คลิกทําให้ใช้งานได้ > ทดสอบ การทําให้ใช้งานได้
- คลิกเปิดใช้ประเภทการติดตั้งใช้งาน > เว็บแอป ข้าง "เลือกประเภท"
- คลิกคัดลอกใต้ URL ของเว็บแอป
วาง URL ในเบราว์เซอร์และทดสอบเว็บแอป
URL นี้ลงท้ายด้วย
/dev
และเข้าถึงได้เฉพาะผู้ใช้ที่มีสิทธิ์แก้ไข สคริปต์เท่านั้น อินสแตนซ์ของแอปนี้จะเรียกใช้โค้ดที่บันทึกล่าสุดเสมอ และมีไว้สำหรับการทดสอบระหว่างการพัฒนาเท่านั้น
สิทธิ์
สิทธิ์สำหรับเว็บแอปจะแตกต่างกันไปตามวิธีที่คุณเลือกเรียกใช้ แอป
- เรียกใช้แอปในฐานะฉัน - ในกรณีนี้ สคริปต์จะเรียกใช้ในฐานะคุณซึ่งเป็นเจ้าของสคริปต์เสมอ ไม่ว่าใครจะเข้าถึงเว็บแอปก็ตาม
- เรียกใช้แอปในฐานะผู้ใช้ที่เข้าถึงเว็บแอป - ในกรณีนี้ สคริปต์จะทํางานภายใต้ตัวตนของผู้ใช้ที่ใช้งานอยู่ซึ่งใช้เว็บแอป วิธีการให้สิทธิ์นี้ทําให้เว็บแอปแสดงอีเมลของเจ้าของสคริปต์เมื่อผู้ใช้ให้สิทธิ์เข้าถึง
ฝังเว็บแอปใน Google Sites
หากต้องการฝังเว็บแอปใน Google Sites คุณต้องติดตั้งใช้งานก่อน นอกจากนี้ คุณยังต้องมี URL ที่ทำให้ใช้งานได้จากกล่องโต้ตอบ Deploy
ด้วย
หากต้องการฝังเว็บแอปในหน้า Sites ให้ทำตามขั้นตอนต่อไปนี้
- เปิดหน้าเว็บไซต์ที่คุณต้องการเพิ่มเว็บแอป
- เลือกแทรก > ฝัง URL
- วาง URL ของเว็บแอป แล้วคลิกเพิ่ม
เว็บแอปจะปรากฏในเฟรมในตัวอย่างของหน้าเว็บ เมื่อคุณเผยแพร่หน้าเว็บ ผู้เข้าชมเว็บไซต์อาจต้องให้สิทธิ์เว็บแอปก่อนที่เว็บแอปจะทำงานตามปกติ เว็บแอปที่ไม่ได้รับอนุญาตจะแสดงข้อความแจ้งการให้สิทธิ์แก่ผู้ใช้
เว็บแอปและประวัติเบราว์เซอร์
คุณอาจต้องการให้เว็บแอป Apps Script จำลองแอปพลิเคชันแบบหลายหน้า หรือแอปพลิเคชันที่มี UI แบบไดนามิกซึ่งควบคุมผ่านพารามิเตอร์ URL หากต้องการทําให้ดี คุณสามารถกําหนดออบเจ็กต์สถานะเพื่อแสดง UI หรือหน้าเว็บของแอป และพุชสถานะลงในประวัติเบราว์เซอร์เมื่อผู้ใช้ไปยังส่วนต่างๆ ของแอปได้ นอกจากนี้ คุณยังสามารถฟังเหตุการณ์ประวัติเพื่อให้เว็บแอปแสดง UI ที่ถูกต้องเมื่อผู้ใช้ไปยังส่วนต่างๆ ด้วยปุ่มเบราว์เซอร์ได้ด้วย การค้นหาพารามิเตอร์ URL ในเวลาโหลดจะช่วยให้แอปสร้าง UI แบบไดนามิกตามพารามิเตอร์เหล่านั้นได้ ซึ่งจะช่วยให้ผู้ใช้เริ่มแอปในสถานะที่เฉพาะเจาะจงได้
Apps Script มี JavaScript API แบบไม่พร้อมกัน 2 รายการฝั่งไคลเอ็นต์เพื่อช่วยในการสร้างเว็บแอปที่ลิงก์กับประวัติเบราว์เซอร์ ดังนี้
google.script.history
มีวิธีการที่อนุญาตให้ตอบสนองแบบไดนามิกต่อการเปลี่ยนแปลงประวัติเบราว์เซอร์ ซึ่งรวมถึงการพุชสถานะ (ออบเจ็กต์อย่างง่ายที่คุณกำหนดได้) ลงในประวัติเบราว์เซอร์ การแทนที่สถานะบนสุดในสแต็กประวัติ และการตั้งค่าฟังก์ชันเรียกกลับของ Listener เพื่อตอบสนองต่อการเปลี่ยนแปลงประวัติgoogle.script.url
มีวิธีดึงพารามิเตอร์ URL และส่วนย่อย URL ของหน้าเว็บปัจจุบัน หากมี
API ประวัติเหล่านี้ใช้ได้กับเว็บแอปเท่านั้น โดยไม่รองรับแถบด้านข้าง กล่องโต้ตอบ หรือส่วนเสริม นอกจากนี้ เรายังไม่แนะนำให้ใช้ฟังก์ชันนี้ในเว็บแอปที่ฝังใน Google Sites