เว็บแอป

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

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

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

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

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

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

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

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