ห้องสมุด

ไลบรารีเป็นโปรเจ็กต์สคริปต์ที่นําฟังก์ชันมาใช้ซ้ําในสคริปต์อื่นๆ ได้

รับสิทธิ์เข้าถึงคลัง

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

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

เพิ่มไลบรารีลงในโปรเจ็กต์สคริปต์

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

ใช้ไลบรารี

ใช้ไลบรารีที่รวมไว้เหมือนที่คุณจะใช้บริการเริ่มต้น ตัวอย่างเช่น หาก Test คือตัวระบุของไลบรารี ให้พิมพ์ Test แล้วตามด้วยเครื่องหมายจุดเพื่อดูรายการเมธอดในไลบรารีทันที

เอกสารอ้างอิงสําหรับห้องสมุดที่รวมอยู่จะเปิดได้โดยทําตามขั้นตอนต่อไปนี้

คลิกเพิ่มเติม > เปิดในแท็บใหม่ที่ด้านซ้ายของเครื่องมือแก้ไขสคริปต์

นําคลังออก

ที่ด้านซ้ายของเครื่องมือแก้ไขสคริปต์ ถัดจากชื่อไลบรารี ให้คลิกเพิ่มเติม > นําออก > นําคลังออก

อัปเดตคลัง

คุณเปลี่ยนเวอร์ชันของไลบรารีหรืออัปเดตตัวระบุได้

  1. คลิกชื่อไลบรารีภายใต้ "ไลบรารี" ทางด้านซ้ายของเครื่องมือแก้ไข
  2. ทำการเปลี่ยนแปลง แล้วคลิกบันทึก

สร้างและแชร์ไลบรารี

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

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

แนวทางปฏิบัติแนะนำ

หลักเกณฑ์บางประการเมื่อเขียนไลบรารีมีดังนี้

  1. เลือกชื่อที่สื่อความหมายสําหรับโปรเจ็กต์เนื่องจากโปรเจ็กต์ใช้เป็นตัวระบุเริ่มต้นเมื่อผู้อื่นรวมไลบรารีของคุณ
  2. หากคุณต้องการให้ระบบแสดงสคริปต์ของคุณ (หรือไม่นําไปใช้) อย่างน้อย 1 วิธี ให้จบชื่อเมธอดด้วยเครื่องหมายขีดล่าง เช่น myPrivateMethod_()
  3. เฉพาะผู้ใช้ห้องสมุดเท่านั้นที่เห็นพร็อพเพอร์ตี้ส่วนกลางที่แจกแจงได้ ซึ่งรวมถึงการประกาศฟังก์ชัน ตัวแปรที่สร้างนอกฟังก์ชันที่มี var และพร็อพเพอร์ตี้ที่ตั้งค่าไว้อย่างชัดเจนในออบเจ็กต์ส่วนกลาง ตัวอย่างเช่น Object.defineProperty() ที่มีการตั้งค่า enumerable เป็น false จะสร้างสัญลักษณ์ที่คุณใช้ในคลังได้ แต่ผู้ใช้จะเข้าถึงสัญลักษณ์นี้ไม่ได้
  4. หากต้องการให้ผู้ใช้ไลบรารีของคุณใช้การเติมสคริปต์อัตโนมัติในเอกสารประกอบและเอกสารประกอบที่สร้างขึ้นโดยอัตโนมัติ คุณต้องมีเอกสารประกอบในรูปแบบ JSDoc สําหรับฟังก์ชันทั้งหมด ตัวอย่าง

    /**
     * Raises a number to the given power, and returns the result.
     *
     * @param {number} base the number we're raising to a power
     * @param {number} exp the exponent we're raising the base to
     * @return {number} the result of the exponential calculation
     */
    function power(base, exp) { ... }
    

การกําหนดทรัพยากร

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

ทรัพยากรที่ใช้ร่วมกัน

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

  function getLibraryProperty(key) {
    return ScriptProperties.getProperty(key);
  }

แผนภาพต่อไปนี้แสดงทรัพยากรที่ไม่ได้แชร์โดยใช้ตัวอย่างพร็อพเพอร์ตี้ของสคริปต์

ทรัพยากรที่ไม่ได้แชร์

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

ทรัพยากร แชร์* ไม่ได้แชร์** หมายเหตุ
ล็อก อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี
คุณสมบัติของสคริปต์ อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี
แคช อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี
ทริกเกอร์ สคริปต์การรวมจะไม่ทริกเกอร์ทริกเกอร์ง่ายๆ ไลบรารี
แอปสคริปต์
แอป Ui
พร็อพเพอร์ตี้ผู้ใช้
ข้อความถอดเสียงและการเรียกใช้
เว็บไซต์ ชีต และคอนเทนเนอร์อื่นๆ การเรียก getActive() จะแสดงผลคอนเทนเนอร์ของสคริปต์
MailApp และ GmailApp
* ซึ่งหมายความว่าไลบรารีไม่มีอินสแตนซ์ของฟีเจอร์/ทรัพยากรของตัวเอง แต่ใช้อินสแตนซ์ที่สร้างด้วยสคริปต์ที่เรียกใช้แทน
** ซึ่งหมายความว่าไลบรารีมีอินสแตนซ์ของทรัพยากร/ฟีเจอร์ของตัวเอง และสคริปต์ทั้งหมดที่ใช้ไลบรารีนี้มีสิทธิ์เข้าถึงอินสแตนซ์นั้น

ทดสอบไลบรารี

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

แก้ไขข้อบกพร่องไลบรารี

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