ห้องสมุด

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

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

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

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

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

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

ใช้ไลบรารี

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

เอกสารอ้างอิงสำหรับไลบรารีที่รวมอยู่สามารถเปิดได้โดยทำตามขั้นตอนต่อไปนี้ ขั้นตอนเหล่านี้:

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

นำคลังออก

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

อัปเดตไลบรารี

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

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

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

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

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

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

หลักเกณฑ์บางประการที่ควรปฏิบัติตามเมื่อเขียนห้องสมุดมีดังนี้

  1. เลือกชื่อที่มีความหมายสำหรับโปรเจ็กต์ของคุณเนื่องจากจะใช้เป็นชื่อ ตัวระบุเริ่มต้นเมื่อผู้อื่นรวมห้องสมุดของคุณไว้ด้วย
  2. หากคุณต้องการให้มองเห็นสคริปต์บางวิธี (หรือ ใหม่) ต่อผู้ใช้ไลบรารี คุณสามารถลงท้ายชื่อเมธอดด้วยแท็ก ขีดล่าง เช่น 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);
  }

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

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

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

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

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

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

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

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