หากสร้างอินเทอร์เฟซผู้ใช้สำหรับสคริปต์ คุณจะเผยแพร่สคริปต์ในรูปแบบเว็บแอปได้ เช่น สคริปต์ที่ให้ผู้ใช้กำหนดเวลาการนัดหมายกับสมาชิกทีมสนับสนุนควรนำเสนอเป็นเว็บแอปเพื่อให้ผู้ใช้เข้าถึงสคริปต์นั้นได้โดยตรงจากเบราว์เซอร์
คุณสามารถเปลี่ยนทั้งสคริปต์แบบสแตนด์อโลนและสคริปต์ที่เชื่อมโยงกับ Google Workspace แอปพลิเคชันเป็นเว็บแอปได้ ตราบใดที่เป็นไปตามข้อกำหนดด้านล่าง
ข้อกำหนดสำหรับเว็บแอป
สคริปต์จะเผยแพร่เป็นเว็บแอปได้หากเป็นไปตามข้อกำหนดต่อไปนี้
- ซึ่งประกอบด้วยฟังก์ชัน
doGet(e)
หรือdoPost(e)
- ฟังก์ชันจะแสดงผลออบเจ็กต์บริการ HTML
HtmlOutput
หรือออบเจ็กต์บริการเนื้อหาTextOutput
พารามิเตอร์คำขอ
เมื่อผู้ใช้เข้าชมแอปหรือโปรแกรมส่งคำขอ 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 ให้ทำตามขั้นตอนต่อไปนี้
- เปิดหน้า Sites ที่คุณต้องการเพิ่มเว็บแอป
- เลือกแทรก > ฝัง URL
- วาง URL ของเว็บแอป แล้วคลิกเพิ่ม
แอปพลิเคชันเว็บจะปรากฏในเฟรมในหน้าตัวอย่างของหน้าเว็บ เมื่อคุณเผยแพร่หน้าเว็บ ผู้ดูเว็บไซต์อาจต้องให้สิทธิ์เว็บแอปดังกล่าวก่อนที่จะทำงานตามปกติ เว็บแอปที่ไม่ได้รับอนุญาตจะแสดง ข้อความแจ้งการให้สิทธิ์แก่ผู้ใช้
เว็บแอปและประวัติเบราว์เซอร์
คุณควรใช้เว็บแอป Apps Script จำลองแอปพลิเคชันที่มีหลายหน้า หรือแอปที่มี UI แบบไดนามิกที่ควบคุมผ่านพารามิเตอร์ของ URL เพื่อทำงานลักษณะนี้ คุณควรกำหนดออบเจ็กต์สถานะเพื่อแสดง UI หรือหน้าของแอป และพุชสถานะลงในประวัติเบราว์เซอร์ขณะที่ผู้ใช้ไปยังส่วนต่างๆ ของแอป และคุณยังฟังเหตุการณ์ประวัติเพื่อให้เว็บแอปแสดง UI ที่ถูกต้องเมื่อผู้ใช้ไปยังส่วนต่างๆ โดยใช้ปุ่มเบราว์เซอร์ไปมาได้ด้วย การค้นหาพารามิเตอร์ของ URL ขณะโหลดจะช่วยให้คุณทำให้แอปสร้าง UI แบบไดนามิกตามพารามิเตอร์เหล่านั้นได้ ซึ่งช่วยให้ผู้ใช้เริ่มต้นแอปในสถานะที่ต้องการ
Apps Script มี JavaScript API ฝั่งไคลเอ็นต์แบบไม่พร้อมกัน 2 ชุดเพื่อช่วยสร้างเว็บแอปที่ลิงก์กับประวัติการเข้าชมของเบราว์เซอร์
google.script.history
ระบุเมธอดเพื่ออนุญาตการตอบสนองแบบไดนามิกต่อการเปลี่ยนแปลงประวัติของเบราว์เซอร์ ซึ่งรวมถึงการพุชสถานะ (ออบเจ็กต์แบบง่ายที่คุณกำหนดได้) ลงในประวัติเบราว์เซอร์ แทนที่สถานะบนสุดในสแต็กประวัติ และการตั้งค่าฟังก์ชัน Callback ของ Listener เพื่อตอบสนองต่อการเปลี่ยนแปลงประวัติgoogle.script.url
เป็นวิธีเรียกข้อมูลพารามิเตอร์ของ URL และส่วนย่อยของ URL ของหน้าเว็บปัจจุบัน หากมี
API ประวัติเหล่านี้ใช้ได้เฉพาะกับเว็บแอปเท่านั้น โดยจะไม่รองรับแถบด้านข้าง กล่องโต้ตอบ หรือส่วนเสริม นอกจากนี้เราไม่แนะนำให้ใช้ฟังก์ชันนี้ในเว็บแอปที่ฝังอยู่ใน Google Sites