ไลบรารีคือโปรเจ็กต์สคริปต์ที่มีฟังก์ชันที่นำกลับมาใช้ใหม่ในสคริปต์อื่นๆ ได้
สคริปต์ที่ใช้ไลบรารีจะทำงานไม่เร็วเท่าสคริปต์ที่มีโค้ดทั้งหมดอยู่ในโปรเจ็กต์สคริปต์เดียว แม้ว่าไลบรารีจะช่วยให้การพัฒนาและการบำรุงรักษาสะดวกยิ่งขึ้น แต่ให้ใช้ ไลบรารีเท่าที่จำเป็นในโปรเจ็กต์ที่ความเร็วเป็นสิ่งสำคัญ ด้วยเหตุนี้ จึงควรจำกัดการใช้ไลบรารีในส่วนเสริมของ Google Workspace
รับสิทธิ์เข้าถึงคลัง
หากต้องการรวมไลบรารีไว้ในโปรเจ็กต์ คุณต้องมีสิทธิ์เข้าถึงอย่างน้อยระดับมุมมอง หากคุณไม่ใช่ผู้เขียนไลบรารีที่ต้องการรวมไว้ ให้ติดต่อผู้เขียนและขอสิทธิ์เข้าถึง
คุณต้องมีรหัสสคริปต์ของไลบรารีที่ต้องการรวม เมื่อมีสิทธิ์เข้าถึงไลบรารี ให้ค้นหารหัสสคริปต์ในหน้าการตั้งค่าโปรเจ็กต์
เพิ่มไลบรารีลงในโปรเจ็กต์สคริปต์
- ที่ด้านซ้ายของโปรแกรมแก้ไข Apps Script ให้คลิกเพิ่มไลบรารี ข้าง "ไลบรารี"
- ในช่อง "รหัสสคริปต์" ให้วางรหัสสคริปต์ของไลบรารี
- คลิกค้นหา
- คลิกเมนูแบบเลื่อนลงเวอร์ชัน แล้วเลือกเวอร์ชันของไลบรารี ที่จะใช้
- ตรวจสอบว่าชื่อ "ตัวระบุ" เริ่มต้นเป็นชื่อที่คุณต้องการใช้กับคลังนี้หรือไม่
นี่คือชื่อที่สคริปต์ใช้เพื่อ
อ้างอิงไลบรารี เช่น หากตั้งค่าเป็น
Testแล้วเรียกใช้ เมธอดของไลบรารีนั้นดังนี้Test.libraryMethod - คลิกเพิ่ม
ใช้ไลบรารี
ใช้คลังที่รวมไว้เหมือนกับใช้บริการเริ่มต้น เช่น หาก Test เป็นตัวระบุสำหรับไลบรารี ให้พิมพ์ Test ตามด้วยจุดทันทีเพื่อดูรายการเมธอดในไลบรารี
เปิดเอกสารอ้างอิงสำหรับไลบรารีที่รวมไว้โดยทำตาม ขั้นตอนต่อไปนี้
ที่ด้านซ้ายของโปรแกรมแก้ไขสคริปต์ ข้างชื่อไลบรารี ให้คลิกเพิ่มเติม > เปิดในแท็บใหม่
นำคลังออก
ที่ด้านซ้ายของตัวแก้ไขสคริปต์ ข้างชื่อไลบรารี ให้คลิกเพิ่มเติม > นำออก > นำไลบรารีออก
หากผู้เขียนลบคลัง คุณยังคงต้องนำคลังนั้นออกจาก รายการคลังที่รวมไว้
อัปเดตไลบรารี
เปลี่ยนเวอร์ชันของไลบรารีหรืออัปเดตตัวระบุ
- ที่ด้านซ้ายของเอดิเตอร์ ในส่วน "ไลบรารี" ให้คลิกชื่อไลบรารี
- ทำการเปลี่ยนแปลง แล้วคลิกบันทึก
สร้างและแชร์คลัง
หากต้องการใช้และแชร์โปรเจ็กต์สคริปต์เป็นไลบรารี ให้ทำตามขั้นตอนต่อไปนี้
- สร้างการติดตั้งใช้งานที่มีการควบคุมเวอร์ชัน ของสคริปต์
- แชร์สิทธิ์เข้าถึงระดับดูอย่างน้อยกับผู้ใช้ที่มีศักยภาพทั้งหมดของไลบรารี
- มอบรหัสสคริปต์ให้แก่ผู้ใช้เหล่านั้น ซึ่งจะดูได้ในหน้าการตั้งค่า โปรเจ็กต์
แนวทางปฏิบัติแนะนำ
ต่อไปนี้คือหลักเกณฑ์บางประการที่ควรปฏิบัติตามเมื่อเขียนไลบรารี
- เลือกชื่อที่มีความหมายสำหรับโปรเจ็กต์ เนื่องจากจะใช้เป็นตัวระบุเริ่มต้นเมื่อผู้อื่นรวมไลบรารีของคุณ
- หากต้องการไม่ให้ผู้ใช้ไลบรารีเห็น (และใช้ไม่ได้) เมธอดอย่างน้อย 1 รายการในสคริปต์ ให้ตั้งชื่อเมธอดโดยลงท้ายด้วยขีดล่าง เช่น
myPrivateMethod_ - มีเพียงพร็อพเพอร์ตี้ส่วนกลางที่แจงนับได้เท่านั้นที่ผู้ใช้ไลบรารีจะมองเห็น ซึ่งรวมถึง
การประกาศฟังก์ชัน ตัวแปรที่สร้างขึ้นนอกฟังก์ชันด้วย
varและ พร็อพเพอร์ตี้ที่ตั้งค่าอย่างชัดเจนในออบเจ็กต์ส่วนกลาง เช่นObject.defineProperty()เมื่อตั้งค่าenumerableเป็นfalseจะสร้างสัญลักษณ์ ที่คุณใช้ในคลังได้ แต่ผู้ใช้จะเข้าถึงสัญลักษณ์นี้ไม่ได้ โปรดใส่เอกสารประกอบสไตล์ 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 |
|
||
| พร็อพเพอร์ตี้ผู้ใช้ | |||
| บันทึกและบันทึกการเรียกใช้ | |||
| เว็บไซต์ ชีต และคอนเทนเนอร์อื่นๆ | การเรียกใช้ getActive จะแสดงผลคอนเทนเนอร์ของ
รวมถึงสคริปต์ |
||
| MailApp และ GmailApp | |||
|
* ซึ่งหมายความว่าไลบรารีไม่มีอินสแตนซ์ของฟีเจอร์/ทรัพยากรของตัวเอง แต่ใช้ฟีเจอร์/ทรัพยากรที่สร้างโดยสคริปต์ที่เรียกใช้แทน
** ซึ่งหมายความว่าไลบรารีมีอินสแตนซ์ของทรัพยากร/ฟีเจอร์ของตัวเอง และสคริปต์ทั้งหมดที่ใช้ไลบรารีจะแชร์และมีสิทธิ์เข้าถึงอินสแตนซ์เดียวกันนั้น | |||
ทดสอบไลบรารี
หากต้องการทดสอบไลบรารี ให้ใช้การติดตั้งใช้งานส่วนหัว ทุกคนที่มีสิทธิ์เข้าถึงสคริปต์ระดับผู้แก้ไข จะใช้การติดตั้งใช้งานเวอร์ชันล่าสุดได้
คุณยังคงต้องบันทึกไลบรารีไว้อย่างน้อย 1 เวอร์ชัน
แก้ไขข้อบกพร่องของไลบรารี
เมื่อแก้ไขข้อบกพร่องของสคริปต์ที่มีไลบรารี คุณจะเข้าสู่โค้ดของไลบรารีหรือตั้งค่าเบรกพอยต์ในไลบรารีไม่ได้ หากคุณพยายามเข้าสู่ฟังก์ชันไลบรารีในโหมดแก้ไขข้อบกพร่อง ดีบักเกอร์จะข้ามฟังก์ชันและไปยังบรรทัดถัดไปในสคริปต์ที่เรียกใช้
การใช้ HEAD (โหมดการพัฒนา) สำหรับเวอร์ชันไลบรารีจะไม่ได้เปิดใช้การก้าวเข้าสู่ไลบรารีหรือการเข้าถึงเบรกพอยต์ภายใน
หากต้องการแก้ไขข้อบกพร่องของโค้ดไลบรารี ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
- แก้ไขข้อบกพร่องจากโปรเจ็กต์ไลบรารี: เปิดโปรเจ็กต์สคริปต์ไลบรารีในโปรแกรมแก้ไข Apps Script หากต้องการทดสอบฟังก์ชันไลบรารีด้วยอาร์กิวเมนต์ที่เฉพาะเจาะจง ให้สร้างฟังก์ชัน "ทดสอบ" ชั่วคราวภายในโปรเจ็กต์ไลบรารีที่เรียกใช้ฟังก์ชันไลบรารี จากนั้นเรียกใช้ฟังก์ชันทดสอบนั้นในโหมดแก้ไขข้อบกพร่อง
- การบันทึก: ใช้
console.log()ภายในฟังก์ชันไลบรารีเพื่อแสดงข้อมูลในบันทึกการดำเนินการ เมื่อสคริปต์อื่นเรียกใช้ไลบรารี บันทึกเหล่านี้จะปรากฏในบันทึกการดำเนินการของสคริปต์ที่เรียกใช้