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