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