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