ห้องสมุด

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

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

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

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

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

  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) {
    const scriptProperties = PropertiesService.getScriptProperties();
    return scriptProperties.getProperty(key);
  }

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

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

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

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

ทดสอบคลัง

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

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

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