ไลบรารีเป็นโปรเจ็กต์สคริปต์ที่นําฟังก์ชันมาใช้ซ้ําในสคริปต์อื่นๆ ได้
รับสิทธิ์เข้าถึงคลัง
หากต้องการรวมไลบรารีไว้ในโปรเจ็กต์ คุณต้องมีสิทธิ์การเข้าถึงระดับข้อมูลพร็อพเพอร์ตี้เป็นอย่างน้อย หากคุณไม่ใช่ผู้เขียนห้องสมุดที่ต้องการรวมไว้ โปรดติดต่อผู้เขียนและขอสิทธิ์เข้าถึง
คุณต้องมีรหัสสคริปต์ของไลบรารีที่ต้องการรวมไว้ เมื่อเข้าถึงคลัง คุณจะดูรหัสสคริปต์ได้ในหน้าการตั้งค่าโปรเจ็กต์
เพิ่มไลบรารีลงในโปรเจ็กต์สคริปต์
- คลิก "เพิ่มไลบรารี" ข้าง "ไลบรารี" ทางด้านซ้ายของเครื่องมือแก้ไข 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) {
return ScriptProperties.getProperty(key);
}
แผนภาพต่อไปนี้แสดงทรัพยากรที่ไม่ได้แชร์โดยใช้ตัวอย่างพร็อพเพอร์ตี้ของสคริปต์
ตารางนี้แสดงทรัพยากรที่ใช้ร่วมกันและไม่มีการแชร์เพื่อเป็นข้อมูลอ้างอิงของคุณ
ทรัพยากร | แชร์* | ไม่ได้แชร์** | หมายเหตุ |
---|---|---|---|
ล็อก | อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี | ||
คุณสมบัติของสคริปต์ | อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี | ||
แคช | อินสแตนซ์ทั้งหมดจะมองเห็นสคริปต์เดียวกันเมื่อสร้างในไลบรารี | ||
ทริกเกอร์ | สคริปต์การรวมจะไม่ทริกเกอร์ทริกเกอร์ง่ายๆ ไลบรารี | ||
แอปสคริปต์ | |||
แอป Ui |
|
||
พร็อพเพอร์ตี้ผู้ใช้ | |||
ข้อความถอดเสียงและการเรียกใช้ | |||
เว็บไซต์ ชีต และคอนเทนเนอร์อื่นๆ | การเรียก getActive() จะแสดงผลคอนเทนเนอร์ของสคริปต์ |
||
MailApp และ GmailApp | |||
* ซึ่งหมายความว่าไลบรารีไม่มีอินสแตนซ์ของฟีเจอร์/ทรัพยากรของตัวเอง แต่ใช้อินสแตนซ์ที่สร้างด้วยสคริปต์ที่เรียกใช้แทน
** ซึ่งหมายความว่าไลบรารีมีอินสแตนซ์ของทรัพยากร/ฟีเจอร์ของตัวเอง และสคริปต์ทั้งหมดที่ใช้ไลบรารีนี้มีสิทธิ์เข้าถึงอินสแตนซ์นั้น |
ทดสอบไลบรารี
หากต้องการทดสอบไลบรารีของคุณ ให้ใช้การทําให้ส่วนหัวใช้งานได้ ทุกคนที่มีสิทธิ์เข้าถึงสคริปต์ในระดับเอดิเตอร์จะใช้การทําให้ส่วนหัวใช้งานได้
แก้ไขข้อบกพร่องไลบรารี
เมื่อใช้โปรแกรมแก้ไขข้อบกพร่องในโปรเจ็กต์ที่มีไลบรารี คุณจะเปลี่ยนไปใช้ฟังก์ชันของไลบรารีที่รวมอยู่ได้ โค้ดนี้จะปรากฏในโปรแกรมแก้ไขข้อบกพร่องในโหมดดูอย่างเดียวและในเวอร์ชันที่ถูกต้อง