ห้องสมุด

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

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

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

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

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

  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);
  }

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

แหล่งข้อมูลที่ไม่ได้แชร์

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

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

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

หากต้องการทดสอบไลบรารี ให้ใช้การทำให้ส่วนหัวใช้งานได้ ทุกคนที่มีสิทธิ์ระดับผู้แก้ไขสำหรับสคริปต์จะใช้การติดตั้งใช้งานส่วนหัวได้

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

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