เว็บแอป

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

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

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

คุณสามารถเผยแพร่สคริปต์เป็นเว็บแอปได้หากเป็นไปตามข้อกําหนดต่อไปนี้

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

เมื่อผู้ใช้เข้าชมแอปหรือโปรแกรมส่งคําขอ HTTP ไปยังแอป GETApps 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 HtmlService.createHtmlOutput(params);
}

ในตัวอย่างข้างต้น 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 แบบคลาสสิกและเวอร์ชันใหม่

การฝังเว็บแอปใน Sites แบบใหม่

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

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

  1. เปิดหน้า Sites ที่ต้องการเพิ่มเว็บแอป
  2. เลือกแทรก > ฝัง URL
  3. วาง URL เว็บแอป แล้วคลิกเพิ่ม

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

การฝังเว็บแอปใน Sites แบบคลาสสิก

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

คุณยังฝังเว็บแอปในหน้าเว็บได้ด้วย คุณสามารถเชื่อมโยงเว็บแอปกับเว็บไซต์ หรือจะใช้เว็บแอปที่มี URL ก็ได้ หากต้องการฝังเว็บแอปในหน้า Google Sites ให้ทําตามขั้นตอนด้านล่าง

  1. เปิดเว็บไซต์ที่มีอยู่ซึ่งคุณมีสิทธิ์แก้ไขหรือสร้างเว็บไซต์ใหม่
  2. ไปยังหน้าในเว็บไซต์ที่ต้องการฝังเว็บแอป
  3. คลิกไอคอนแก้ไข แล้วคลิก Insert > Google Apps Script
  4. เลือกสคริปต์จากรายการที่แสดงถึงเว็บแอปของคุณ หากเว็บแอปไม่ได้เชื่อมโยงกับเว็บไซต์นี้ คุณสามารถวาง URL ในเว็บแอปแทนได้
  5. คลิกปุ่มเลือก เลือกตัวเลือกที่ต้องการจากกล่องโต้ตอบถัดไป แล้วคลิกบันทึก
  6. บันทึกการเปลี่ยนแปลงในหน้าเว็บ จากนั้นคุณจะเห็นเว็บแอปฝังในหน้าเว็บไซต์

เว็บแอปและประวัติเบราว์เซอร์

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

Apps Script มี JavaScript API ฝั่งไคลเอ็นต์ที่ไม่พร้อมกัน 2 รายการเพื่อช่วยในการสร้างเว็บแอปที่ลิงก์กับประวัติเบราว์เซอร์

  • google.script.history มีวิธีอนุญาตการเปลี่ยนแปลงแบบไดนามิกกับการเปลี่ยนแปลงประวัติของเบราว์เซอร์ ซึ่งได้แก่ พุชสถานะ (ออบเจ็กต์แบบง่ายที่คุณกําหนดได้) ลงในประวัติเบราว์เซอร์ แทนที่สถานะสูงสุดในสแต็กประวัติ และตั้งค่าฟังก์ชันเรียกกลับของ Listener เพื่อตอบสนองต่อการเปลี่ยนแปลงประวัติ

  • google.script.url มีวิธีเรียกพารามิเตอร์ของ URL และส่วนย่อย URL ของหน้าเว็บปัจจุบัน หากมี

API ประวัติเหล่านี้ใช้ได้กับเว็บแอปเท่านั้น ซึ่งไม่รองรับในแถบด้านข้าง กล่องโต้ตอบ หรือส่วนเสริม นอกจากนี้ เราไม่แนะนําให้ใช้ฟังก์ชันนี้ในเว็บแอปที่ฝังอยู่ใน Google Sites