ห้องสมุด

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

รับสิทธิ์เข้าถึงห้องสมุด

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

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

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

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

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

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

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

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