เว็บแอป

หากสร้างอินเทอร์เฟซผู้ใช้สำหรับสคริปต์ คุณจะเผยแพร่สคริปต์ในรูปแบบเว็บแอปได้ เช่น สคริปต์ที่ให้ผู้ใช้กำหนดเวลาการนัดหมายกับสมาชิกทีมสนับสนุนควรนำเสนอเป็นเว็บแอปเพื่อให้ผู้ใช้เข้าถึงสคริปต์นั้นได้โดยตรงจากเบราว์เซอร์

คุณสามารถเปลี่ยนทั้งสคริปต์แบบสแตนด์อโลนและสคริปต์ที่เชื่อมโยงกับ Google Workspace แอปพลิเคชันเป็นเว็บแอปได้ ตราบใดที่เป็นไปตามข้อกำหนดด้านล่าง

ข้อกำหนดสำหรับเว็บแอป

สคริปต์จะเผยแพร่เป็นเว็บแอปได้หากเป็นไปตามข้อกำหนดต่อไปนี้

พารามิเตอร์คำขอ

เมื่อผู้ใช้เข้าชมแอปหรือโปรแกรมส่งคำขอ HTTP GET ถึงแอป Apps Script จะเรียกใช้ฟังก์ชัน doGet(e) เมื่อโปรแกรมส่งคำขอ HTTP POST ไปยังแอป Apps Script จะเรียกใช้ doPost(e) แทน ในทั้ง 2 กรณี อาร์กิวเมนต์ e แสดงถึงพารามิเตอร์เหตุการณ์ที่มีข้อมูลเกี่ยวกับพารามิเตอร์คําขอทั้งหมด โครงสร้างของออบเจ็กต์เหตุการณ์จะแสดงในตารางด้านล่าง

ช่อง
e.queryString

ค่าของส่วนสตริงการค้นหาของ URL หรือ null หากไม่ได้ระบุสตริงการค้นหา

name=alice&n=1&n=2
e.parameter

ออบเจ็กต์ของคู่คีย์/ค่าที่สอดคล้องกับพารามิเตอร์คำขอ ระบบจะแสดงผลเฉพาะค่าแรกสำหรับพารามิเตอร์ที่มีหลายค่า

{"name": "alice", "n": "1"}
e.parameters

ออบเจ็กต์ที่คล้ายกับ e.parameter แต่มีอาร์เรย์ค่าสำหรับแต่ละคีย์

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

เส้นทาง URL หลัง /exec หรือ /dev เช่น หากเส้นทาง URL ลงท้ายด้วย /exec/hello ข้อมูลเส้นทางจะเป็น hello

e.contextPath ไม่มีการใช้ สตริงว่างเปล่าเสมอ
e.contentLength

ความยาวของเนื้อหาคำขอสำหรับคำขอ POST หรือ -1 สำหรับคำขอ GET

332
e.postData.length

ราคาเดียวกับ e.contentLength

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
}

ปรับใช้สคริปต์เป็นเว็บแอป

หากต้องการปรับใช้สคริปต์เป็นเว็บแอป ให้ทำตามขั้นตอนต่อไปนี้

  1. คลิกทำให้ใช้งานได้ > การทำให้ใช้งานได้ใหม่ที่ด้านขวาบนของโครงการสคริปต์
  2. ข้าง "เลือกประเภท" ให้คลิกเปิดใช้ประเภทการทำให้ใช้งานได้ > เว็บแอป
  3. ป้อนข้อมูลเกี่ยวกับเว็บแอปในช่องในส่วน "การกำหนดค่าการทำให้ใช้งานได้"
  4. คลิกทำให้ใช้งานได้

คุณสามารถแชร์ URL ของเว็บแอปกับผู้ที่คุณต้องการใช้แอปได้ ในกรณีที่คุณให้สิทธิ์เข้าถึงแล้ว

ทดสอบการทำให้เว็บแอปใช้งานได้

หากต้องการทดสอบสคริปต์แบบเว็บแอป ให้ทำตามขั้นตอนด้านล่าง

  1. คลิกทำให้ใช้งานได้ > ทดสอบการทำให้ใช้งานได้ที่ด้านขวาบนของโปรเจ็กต์สคริปต์
  2. ข้าง "เลือกประเภท" ให้คลิกเปิดใช้ประเภทการทำให้ใช้งานได้ > เว็บแอป
  3. คลิกคัดลอกใต้ URL ของเว็บแอป
  4. วาง URL ในเบราว์เซอร์แล้วทดสอบเว็บแอป

    URL นี้ลงท้ายด้วย /dev และสามารถเข้าถึงได้โดยผู้ใช้ที่มีสิทธิ์แก้ไขสคริปต์เท่านั้น อินสแตนซ์ของแอปนี้จะเรียกใช้โค้ดที่บันทึกไว้ล่าสุดเสมอและมีวัตถุประสงค์เพื่อทดสอบระหว่างการพัฒนาเท่านั้น

สิทธิ์

สิทธิ์ของเว็บแอปจะแตกต่างกัน ขึ้นอยู่กับวิธีที่คุณเลือกเรียกใช้แอป

  • เรียกใช้แอปในฐานะฉัน ในกรณีนี้ สคริปต์จะทำงานในฐานะที่คุณซึ่งเป็นเจ้าของสคริปต์เสมอ ไม่ว่าผู้ที่จะเข้าถึงเว็บแอปใดก็ตาม
  • เรียกใช้แอปในฐานะผู้ใช้ที่เข้าถึงเว็บแอป ในกรณีนี้ สคริปต์จะทำงานภายใต้ข้อมูลประจำตัวของผู้ใช้ที่ใช้งานอยู่โดยใช้เว็บแอป แนวทางเกี่ยวกับสิทธิ์นี้จะทำให้เว็บแอปแสดงอีเมลของเจ้าของสคริปต์เมื่อผู้ใช้ให้สิทธิ์เข้าถึง

ฝังเว็บแอปของคุณใน Google Sites

หากต้องการฝังเว็บแอปใน Google Sites จะต้องมีการทำให้ใช้งานได้ก่อน และจะต้องมี URL ที่ทำให้ใช้งานได้แล้วจากกล่องโต้ตอบ Deploy ด้วย

หากต้องการฝังเว็บแอปลงในหน้า Sites ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดหน้า Sites ที่คุณต้องการเพิ่มเว็บแอป
  2. เลือกแทรก > ฝัง URL
  3. วาง 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