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