เข้าถึงและจัดการการเผยแพร่สคริปต์และทริกเกอร์ คลาสนี้ช่วยให้ผู้ใช้สร้างทริกเกอร์สคริปต์และควบคุมการเผยแพร่สคริปต์เป็นบริการได้
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
---|---|---|
Auth | Auth | การแจกแจงที่ระบุหมวดหมู่ของบริการที่ได้รับอนุญาตซึ่ง Apps Script สามารถดำเนินการผ่านฟังก์ชันที่ทริกเกอร์ |
Authorization | Authorization | การแจกแจงที่ระบุสถานะการให้สิทธิ์ของสคริปต์ |
Event | Event | การแจกแจงที่ระบุประเภทของเหตุการณ์ที่ทริกเกอร์ |
Installation | Installation | การแจกแจงที่ระบุวิธีติดตั้งสคริปต์เป็นส่วนเสริมให้กับผู้ใช้ |
Trigger | Trigger | การแจกแจงที่ระบุแหล่งที่มาของเหตุการณ์ที่ทริกเกอร์ให้เริ่มทํางาน |
Week | Weekday | การแจกแจงที่แสดงวันในสัปดาห์ |
เมธอด
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
delete | void | นําทริกเกอร์ที่ระบุออกเพื่อไม่ให้ทริกเกอร์ทํางานอีกต่อไป |
get | Authorization | รับออบเจ็กต์ที่ใช้เพื่อระบุว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้เพื่อใช้บริการอย่างน้อย 1 รายการหรือไม่ และเพื่อระบุ URL สําหรับกล่องโต้ตอบการให้สิทธิ์ |
get | String | รับโทเค็นข้อมูลประจำตัว Openopenid |
get | Installation | แสดงผลค่า Enum ที่ระบุวิธีติดตั้งสคริปต์เป็นส่วนเสริมสําหรับผู้ใช้ปัจจุบัน (เช่น ผู้ใช้ติดตั้งด้วยตนเองผ่าน Chrome เว็บสโตร์ หรือผู้ดูแลระบบโดเมนติดตั้งสําหรับผู้ใช้ทุกคน) |
get | String | รับโทเค็นการเข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีสิทธิ์ |
get | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งเชื่อมโยงกับโปรเจ็กต์ปัจจุบันและผู้ใช้ปัจจุบัน |
get | String | รับรหัสที่ไม่ซ้ำกันของโปรเจ็กต์สคริปต์ |
get | Service | รับออบเจ็กต์ที่ใช้ควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป |
get | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ สำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น |
get | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่เป็นของผู้ใช้รายนี้ในรูปแบบที่ระบุสำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น |
get | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุสำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น |
invalidate | void | ทำให้การให้สิทธิ์ที่ผู้ใช้ที่มีผลมีสิทธิ์ใช้เพื่อเรียกใช้สคริปต์ปัจจุบันเป็นโมฆะ |
new | State | สร้างโปรแกรมสร้างสําหรับโทเค็นสถานะที่ใช้ใน API การเรียกกลับได้ (เช่น โฟลว์ OAuth) |
new | Trigger | เริ่มกระบวนการสร้างทริกเกอร์ที่ติดตั้งได้ ซึ่งจะเรียกใช้ฟังก์ชันหนึ่งๆ เมื่อทริกเกอร์ทำงาน |
เอกสารประกอบโดยละเอียด
delete Trigger(trigger)
นําทริกเกอร์ที่ระบุออกเพื่อไม่ให้ทริกเกอร์ทํางานอีกต่อไป
// Deletes all triggers in the current project. const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
trigger | Trigger | ทริกเกอร์ที่จะลบ |
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
get Authorization Info(authMode)
รับออบเจ็กต์ที่ใช้เพื่อระบุว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้เพื่อใช้บริการอย่างน้อย 1 รายการหรือไม่ และเพื่อระบุ URL สําหรับกล่องโต้ตอบการให้สิทธิ์ หากเผยแพร่สคริปต์เป็นส่วนเสริมที่ใช้ทริกเกอร์ที่ติดตั้งได้ ระบบจะใช้ข้อมูลนี้เพื่อควบคุมการเข้าถึงส่วนโค้ดที่ผู้ใช้ไม่มีสิทธิ์ที่จำเป็นได้ หรือส่วนเสริมอาจขอให้ผู้ใช้เปิด URL สำหรับกล่องโต้ตอบการให้สิทธิ์เพื่อแก้ปัญหา
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
auth | Auth | โหมดการให้สิทธิ์ที่ขอข้อมูลการให้สิทธิ์ ซึ่งเกือบทุกกรณี ค่าของ auth ควรเป็น Script เนื่องจากไม่มีโหมดการให้สิทธิ์อื่นที่กําหนดให้ผู้ใช้ต้องให้สิทธิ์ |
รีเทิร์น
Authorization
— ออบเจ็กต์ที่ให้ข้อมูลเกี่ยวกับสถานะการให้สิทธิ์ของผู้ใช้
get Identity Token()
รับโทเค็นข้อมูลประจำตัว Openopenid
ขอบเขตนี้จะไม่รวมอยู่โดยค่าเริ่มต้น และคุณต้องเพิ่มเป็นขอบเขตที่ชัดเจนในไฟล์ Manifest เพื่อขอ ใส่ขอบเขต https://www.googleapis.com/auth/userinfo.email
หรือ https://www.googleapis.com/auth/userinfo.profile
เพื่อแสดงข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ในโทเค็น
โทเค็นระบุตัวตนที่แสดงผลคือ JSON Web Token (JWT) ที่เข้ารหัส และจะต้องถอดรหัสเพื่อดึงข้อมูลจากโทเค็น ตัวอย่างต่อไปนี้แสดงวิธีถอดรหัสโทเค็นและดึงรหัสโปรไฟล์ Google ของผู้ใช้ที่มีประสิทธิภาพ
const idToken = ScriptApp.getIdentityToken(); const body = idToken.split('.')[1]; const decoded = Utilities .newBlob( Utilities.base64Decode(body), ) .getDataAsString(); const payload = JSON.parse(decoded); Logger.log(`Profile ID: ${payload.sub}`);
รีเทิร์น
String
— โทเค็นระบุตัวตน (หากมี) หรือ null
get Installation Source()
แสดงผลค่า Enum ที่ระบุวิธีติดตั้งสคริปต์เป็นส่วนเสริมสําหรับผู้ใช้ปัจจุบัน (เช่น ผู้ใช้ติดตั้งด้วยตนเองผ่าน Chrome เว็บสโตร์ หรือผู้ดูแลระบบโดเมนติดตั้งสําหรับผู้ใช้ทุกคน)
รีเทิร์น
Installation
— แหล่งที่มาของการติดตั้ง
get OAuth Token()
รับโทเค็นการเข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีสิทธิ์ หากขอบเขต OAuth ของสคริปต์เพียงพอที่จะให้สิทธิ์ Google API อื่นซึ่งปกติต้องใช้ขั้นตอนการให้สิทธิ์ OAuth ของตนเอง (เช่น Google Picker) สคริปต์จะข้ามข้อความแจ้งให้สิทธิ์ครั้งที่ 2 ได้โดยส่งโทเค็นนี้แทน โทเค็นจะหมดอายุหลังจากผ่านไประยะหนึ่ง (อย่างน้อย 2-3 นาที) สคริปต์ควรจัดการกับการให้สิทธิ์ที่ไม่สําเร็จและเรียกใช้เมธอดนี้เพื่อรับโทเค็นใหม่เมื่อจําเป็น
โทเค็นที่แสดงผลโดยเมธอดนี้จะรวมเฉพาะขอบเขตที่ต้องใช้กับสคริปต์ในขณะนี้ โทเค็นที่ส่งคืนจะไม่รวมขอบเขตที่ได้รับสิทธิ์ก่อนหน้านี้แต่สคริปต์ไม่ได้ใช้แล้ว หากต้องการขอบเขต OAuth เพิ่มเติมนอกเหนือจากที่ต้องใช้กับสคริปต์เอง คุณสามารถระบุขอบเขตเหล่านั้นได้ในไฟล์ Manifest ของสคริปต์
รีเทิร์น
String
— การนําเสนอสตริงของโทเค็น OAuth 2.0
get Project Triggers()
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งเชื่อมโยงกับโปรเจ็กต์ปัจจุบันและผู้ใช้ปัจจุบัน
Logger.log( `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`, );
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ของผู้ใช้ปัจจุบันที่เชื่อมโยงกับโปรเจ็กต์นี้
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
get Script Id()
รับรหัสที่ไม่ซ้ำกันของโปรเจ็กต์สคริปต์ วิธีนี้เป็นวิธีที่แนะนำในการรับตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์สคริปต์ แทนที่จะใช้
รหัสนี้ใช้ได้ในทุกที่ที่ระบุคีย์โปรเจ็กต์ไว้ก่อนหน้านี้get
รีเทิร์น
String
— รหัสโปรเจ็กต์สคริปต์
get Service()
รับออบเจ็กต์ที่ใช้ควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป
// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();
รีเทิร์น
Service
— ออบเจ็กต์ที่ใช้สังเกตและควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป
get User Triggers(document)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ สำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น วิธีการนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
const doc = DocumentApp.getActiveDocument(); const triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
document | Document | ไฟล์ Google เอกสารที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(form)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่เป็นของผู้ใช้รายนี้ในรูปแบบที่ระบุสำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น วิธีการนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
const form = FormApp.getActiveForm(); const triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
form | Form | ไฟล์ Google ฟอร์มที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในรูปแบบที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
get User Triggers(spreadsheet)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุสำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น วิธีการนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
const ss = SpreadsheetApp.getActiveSpreadsheet(); const triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
spreadsheet | Spreadsheet | ไฟล์ Google ชีตที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
invalidate Auth()
ทำให้การให้สิทธิ์ที่ผู้ใช้ที่มีผลมีสิทธิ์ใช้เพื่อเรียกใช้สคริปต์ปัจจุบันเป็นโมฆะ ใช้เพื่อทำให้สิทธิ์ทั้งหมดของสคริปต์ปัจจุบันเป็นโมฆะ ซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับฟังก์ชันที่ติดแท็กเป็นการให้สิทธิ์แบบครั้งเดียว เนื่องจากฟังก์ชันการให้สิทธิ์แบบครั้งเดียวจะเรียกใช้ได้เฉพาะในการเรียกใช้ครั้งแรกหลังจากที่สคริปต์ได้รับสิทธิ์แล้ว หากคุณต้องการดําเนินการหลังจากนั้น คุณต้องเพิกถอนการให้สิทธิ์ทั้งหมดที่สคริปต์มีเพื่อให้ผู้ใช้เห็นกล่องโต้ตอบการให้สิทธิ์อีกครั้ง
ScriptApp .invalidateAuth();
โยน
Error
— เมื่อการทำให้ไม่มีผลไม่สำเร็จ
new State Token()
สร้างโปรแกรมสร้างสําหรับโทเค็นสถานะที่ใช้ใน API การเรียกกลับได้ (เช่น โฟลว์ OAuth)
// Generate a callback URL, given the name of a callback function. The script // does not need to be published as a web app; the /usercallback URL suffix // replaces /edit in any script's URL. function getCallbackURL(callbackFunction) { // IMPORTANT: Replace string below with the URL from your script, minus the // /edit at the end. const scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; const urlSuffix = '/usercallback?state='; const stateToken = ScriptApp.newStateToken() .withMethod(callbackFunction) .withTimeout(120) .createToken(); return scriptUrl + urlSuffix + stateToken; }
ในขั้นตอน OAuth2 ส่วนใหญ่ ระบบจะส่งโทเค็น state
ไปยังปลายทางการให้สิทธิ์โดยตรง (ไม่ใช่เป็นส่วนหนึ่งของ URL ติดต่อกลับ) จากนั้นปลายทางการให้สิทธิ์จะส่งโทเค็นดังกล่าวเป็นส่วนหนึ่งของ URL ติดต่อกลับ
เช่น
- สคริปต์เปลี่ยนเส้นทางผู้ใช้ไปยัง URL การให้สิทธิ์ OAuth2:
https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
- ผู้ใช้คลิก "ให้สิทธิ์" แล้วหน้าการให้สิทธิ์ OAuth2 จะเปลี่ยนเส้นทางผู้ใช้กลับไปที่
https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
- การเปลี่ยนเส้นทางข้างต้น (กลับไปที่
http://script.google.com/...
) ทําให้เบราว์เซอร์ส่งคําขอไปยัง/usercallback
ซึ่งเรียกใช้เมธอดที่ระบุโดยState
Token Builder.withMethod(method)
รีเทิร์น
State
— ออบเจ็กต์ที่ใช้เพื่อดําเนินกระบวนการสร้างโทเค็นสถานะต่อ
new Trigger(functionName)
เริ่มกระบวนการสร้างทริกเกอร์ที่ติดตั้งได้ ซึ่งจะเรียกใช้ฟังก์ชันหนึ่งๆ เมื่อทริกเกอร์ทำงาน
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
function | String | ฟังก์ชันที่จะเรียกใช้เมื่อทริกเกอร์เริ่มทํางาน คุณสามารถใช้ฟังก์ชันจากคลังรวม เช่น Library.libFunction1 |
รีเทิร์น
Trigger
— ออบเจ็กต์ที่ใช้เพื่อดําเนินการต่อในกระบวนการสร้างทริกเกอร์
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับอนุญาตด้วยขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp