เว็บแอป

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

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

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

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

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

เมื่อผู้ใช้เข้าชมแอปหรือโปรแกรมส่งคําขอ HTTP GET ไปยังแอป Apps Script จะเรียกใช้ฟังก์ชัน doGet(e) เมื่อโปรแกรมส่งคําขอ HTTPPOST ไปยังแอป 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. เปิดหน้าเว็บไซต์ที่ต้องการเพิ่มเว็บแอป
  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