เว็บแอป

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

ทั้งสคริปต์แบบสแตนด์อโลนและสคริปต์ที่ผูกกับ 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 ด้วย

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

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