เข้าถึงและจัดการการเผยแพร่สคริปต์และทริกเกอร์ คลาสนี้ช่วยให้ผู้ใช้สร้างทริกเกอร์สคริปต์และควบคุมการเผยแพร่สคริปต์ในรูปแบบบริการได้
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | Type | คำอธิบาย |
---|---|---|
AuthMode | AuthMode | การแจกแจงที่ระบุหมวดหมู่ของบริการที่ได้รับอนุญาตของ Apps Script ที่เรียกใช้ผ่านฟังก์ชันที่ทริกเกอร์ได้ |
AuthorizationStatus | AuthorizationStatus | การแจกแจงที่แสดงถึงสถานะการให้สิทธิ์ของสคริปต์ |
EventType | EventType | การแจกแจงที่แสดงถึงประเภทของเหตุการณ์ที่ถูกทริกเกอร์ |
InstallationSource | InstallationSource | การแจกแจงซึ่งแสดงวิธีการติดตั้งสคริปต์ให้แก่ผู้ใช้ในฐานะส่วนเสริม |
TriggerSource | TriggerSource | การแจงนับที่แสดงถึงแหล่งที่มาของเหตุการณ์ที่ทําให้ทริกเกอร์เริ่มทํางาน |
WeekDay | Weekday | การแจกแจงซึ่งแสดงวันของสัปดาห์ |
วิธีการ
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
deleteTrigger(trigger) | void | นำทริกเกอร์ที่ระบุออกเพื่อไม่ให้ทำงานอีกต่อไป |
getAuthorizationInfo(authMode) | AuthorizationInfo | รับออบเจ็กต์ที่ใช้พิจารณาว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้ในการใช้บริการอย่างน้อย 1 รายการหรือไม่ และเพื่อระบุ URL สำหรับกล่องโต้ตอบการให้สิทธิ์ |
getIdentityToken() | String | รับโทเค็นข้อมูลประจำตัว OpenID Connect สำหรับผู้ใช้ที่มีประสิทธิภาพ หากให้สิทธิ์ขอบเขต openid แล้ว |
getInstallationSource() | InstallationSource | แสดงผลค่า enum ที่ระบุวิธีติดตั้งสคริปต์เป็นส่วนเสริมสำหรับผู้ใช้ปัจจุบัน (เช่น ผู้ใช้ติดตั้งด้วยตัวเองผ่าน Chrome เว็บสโตร์ หรือผู้ดูแลระบบโดเมนติดตั้งให้ผู้ใช้ทุกคนหรือไม่) |
getOAuthToken() | String | รับโทเค็นเพื่อการเข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีประสิทธิภาพ |
getProjectTriggers() | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งเชื่อมโยงกับโปรเจ็กต์ปัจจุบันและผู้ใช้ปัจจุบัน |
getScriptId() | String | รับรหัสที่ไม่ซ้ำกันของโครงการสคริปต์ |
getService() | Service | รับออบเจ็กต์ที่ใช้ควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป |
getUserTriggers(document) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ สำหรับสคริปต์นี้หรือส่วนเสริมเท่านั้น |
getUserTriggers(form) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในแบบฟอร์มที่ระบุ สำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น |
getUserTriggers(spreadsheet) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุ สำหรับสคริปต์นี้หรือส่วนเสริมเท่านั้น |
invalidateAuth() | void | ยกเลิกการให้สิทธิ์ที่ผู้ใช้ที่มีประสิทธิภาพจะต้องเรียกใช้สคริปต์ปัจจุบัน |
newStateToken() | StateTokenBuilder | สร้างเครื่องมือสร้างสำหรับโทเค็นสถานะที่สามารถใช้ใน API เรียกกลับ (เช่น ขั้นตอน OAuth) |
newTrigger(functionName) | TriggerBuilder | เริ่มกระบวนการสร้างทริกเกอร์ที่ติดตั้งได้ ซึ่งจะเรียกใช้ฟังก์ชันที่กำหนดเมื่อเริ่มทำงาน |
เอกสารประกอบโดยละเอียด
deleteTrigger(trigger)
นำทริกเกอร์ที่ระบุออกเพื่อไม่ให้ทำงานอีกต่อไป
// Deletes all triggers in the current project. var triggers = ScriptApp.getProjectTriggers(); for (var i = 0; i < triggers.length; i++) { ScriptApp.deleteTrigger(triggers[i]); }
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
trigger | Trigger | ทริกเกอร์ที่จะลบ |
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
รับออบเจ็กต์ที่ใช้พิจารณาว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้ในการใช้บริการอย่างน้อย 1 รายการหรือไม่ และเพื่อระบุ URL สำหรับกล่องโต้ตอบการให้สิทธิ์ หากสคริปต์ได้รับการเผยแพร่เป็นส่วนเสริมที่ใช้ทริกเกอร์ที่ติดตั้งได้ ระบบอาจใช้ข้อมูลนี้เพื่อควบคุมการเข้าถึงส่วนของโค้ดที่ผู้ใช้ขาดการให้สิทธิ์ที่จำเป็น หรือส่วนเสริมสามารถขอให้ผู้ใช้เปิด URL ของกล่องโต้ตอบการให้สิทธิ์เพื่อแก้ไขปัญหา
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
authMode | AuthMode | โหมดการให้สิทธิ์ที่มีการขอข้อมูลการให้สิทธิ์ ในเกือบทุกกรณี ค่าของ authMode ควรเป็น ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) เนื่องจากโหมดการให้สิทธิ์อื่นๆ ไม่จำเป็นต้องมีการให้สิทธิ์ผู้ใช้ |
รีเทิร์น
AuthorizationInfo
— ออบเจ็กต์ที่ให้ข้อมูลเกี่ยวกับสถานะการให้สิทธิ์ของผู้ใช้
getIdentityToken()
รับโทเค็นข้อมูลประจำตัว OpenID Connect สำหรับผู้ใช้ที่มีประสิทธิภาพ หากให้สิทธิ์ขอบเขต openid
แล้ว ขอบเขตนี้ไม่ได้รวมอยู่โดยค่าเริ่มต้น และคุณต้องเพิ่มเป็นขอบเขตที่อาจไม่เหมาะสมในไฟล์ Manifest เพื่อขอ ระบุขอบเขต https://www.googleapis.com/auth/userinfo.email
หรือ https://www.googleapis.com/auth/userinfo.profile
เพื่อแสดงข้อมูลผู้ใช้เพิ่มเติมในโทเค็น
โทเค็นรหัสที่ส่งกลับมาคือโทเค็นเว็บ JSON (JWT) ที่เข้ารหัสและต้องถอดรหัสเพื่อดึงข้อมูล ตัวอย่างต่อไปนี้แสดงวิธีถอดรหัสโทเค็นและดึงรหัสโปรไฟล์ Google ของผู้ใช้ที่มีผล
var idToken = ScriptApp.getIdentityToken(); var body = idToken.split('.')[1]; var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString(); var payload = JSON.parse(decoded); var profileId = payload.sub; Logger.log('Profile ID: ' + profileId);ดูเอกสาร OpenID Connect สำหรับรายการช่อง (การอ้างสิทธิ์) ทั้งหมดที่แสดงผล
รีเทิร์น
String
— โทเค็นข้อมูลประจำตัว (หากมี) หรือ null
getInstallationSource()
แสดงผลค่า enum ที่ระบุวิธีติดตั้งสคริปต์เป็นส่วนเสริมสำหรับผู้ใช้ปัจจุบัน (เช่น ผู้ใช้ติดตั้งด้วยตัวเองผ่าน Chrome เว็บสโตร์ หรือผู้ดูแลระบบโดเมนติดตั้งให้ผู้ใช้ทุกคนหรือไม่)
รีเทิร์น
InstallationSource
— ที่มาของการติดตั้ง
getOAuthToken()
รับโทเค็นเพื่อการเข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีประสิทธิภาพ หากขอบเขต OAuth ของสคริปต์เพียงพอที่จะให้สิทธิ์ Google API อื่นที่โดยปกติแล้วต้องใช้โฟลว์ OAuth ของตัวเอง (เช่น Google Picker) สคริปต์จะข้ามข้อความแจ้งการให้สิทธิ์รายการที่ 2 ได้โดยส่งผ่านโทเค็นนี้แทน โทเค็นจะหมดอายุหลังจากผ่านไประยะหนึ่ง (อย่างน้อย 2-3 นาที) สคริปต์ควรจัดการกับความล้มเหลวในการให้สิทธิ์ และเรียกใช้เมธอดนี้เพื่อรับโทเค็นใหม่เมื่อจำเป็น
โทเค็นที่แสดงผลโดยวิธีนี้มีเฉพาะขอบเขตที่สคริปต์ต้องการใช้ในปัจจุบันเท่านั้น ขอบเขตที่ได้รับอนุญาตก่อนหน้านี้แต่สคริปต์ไม่ได้ใช้งานแล้วจะไม่รวมอยู่ในโทเค็นที่ส่งคืน หากจำเป็นต้องใช้ขอบเขต OAuth เพิ่มเติมซึ่งเกินกว่าที่สคริปต์ต้องการ คุณจะระบุขอบเขตดังกล่าวในไฟล์ Manifest ของสคริปต์ได้
รีเทิร์น
String
— การแสดงสตริงของโทเค็น OAuth 2.0
getProjectTriggers()
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งเชื่อมโยงกับโปรเจ็กต์ปัจจุบันและผู้ใช้ปัจจุบัน
Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ของผู้ใช้ปัจจุบันที่เชื่อมโยงกับโปรเจ็กต์นี้
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
getScriptId()
รับรหัสที่ไม่ซ้ำกันของโครงการสคริปต์ วิธีนี้เหมาะสำหรับการรับตัวระบุที่ไม่ซ้ำกันสำหรับโปรเจ็กต์สคริปต์ ไม่ใช่
รหัสนี้ใช้ได้ในทุกที่
ที่มีการให้คีย์โปรเจ็กต์ไว้ก่อนหน้านี้getProjectKey()
รีเทิร์น
String
— รหัสโปรเจ็กต์สคริปต์
getService()
รับออบเจ็กต์ที่ใช้ควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป
// Get the URL of the published web app. var url = ScriptApp.getService().getUrl();
รีเทิร์น
Service
— ออบเจ็กต์ที่ใช้สังเกตและควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป
getUserTriggers(document)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ สำหรับสคริปต์นี้หรือส่วนเสริมเท่านั้น เมธอดนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
var doc = DocumentApp.getActiveDocument(); var triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
document | Document | ไฟล์ Google เอกสารที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในเอกสารที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(form)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในแบบฟอร์มที่ระบุ สำหรับสคริปต์หรือส่วนเสริมนี้เท่านั้น เมธอดนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
var form = FormApp.getActiveForm(); var triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
form | Form | ไฟล์ Google ฟอร์มที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในแบบฟอร์มที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
getUserTriggers(spreadsheet)
รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดที่ผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุ สำหรับสคริปต์นี้หรือส่วนเสริมเท่านั้น เมธอดนี้ใช้เพื่อดูทริกเกอร์ที่แนบอยู่กับสคริปต์อื่นๆ ไม่ได้
var ss = SpreadsheetApp.getActiveSpreadsheet(); var triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
spreadsheet | Spreadsheet | ไฟล์ Google ชีตที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
invalidateAuth()
ยกเลิกการให้สิทธิ์ที่ผู้ใช้ที่มีประสิทธิภาพจะต้องเรียกใช้สคริปต์ปัจจุบัน ใช้เพื่อยกเลิกสิทธิ์ของสคริปต์ปัจจุบัน ซึ่งมีประโยชน์มากสำหรับฟังก์ชัน ที่ติดแท็กเป็นการให้สิทธิ์ช็อตเดียว เนื่องจากจะเรียกฟังก์ชันการให้สิทธิ์แบบช็อตครั้งเดียวก็ต่อเมื่อสคริปต์ได้รับการให้สิทธิ์แล้วเท่านั้น หากต้องการดำเนินการหลังจากนั้น คุณต้องเพิกถอนการให้สิทธิ์ของสคริปต์นั้นเพื่อให้ผู้ใช้เห็นกล่องโต้ตอบการให้สิทธิ์อีกครั้ง
ScriptApp.invalidateAuth();
การขว้าง
Error
— เมื่อการทำให้เป็นโมฆะไม่สำเร็จ
newStateToken()
สร้างเครื่องมือสร้างสำหรับโทเค็นสถานะที่สามารถใช้ใน 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. var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz'; var urlSuffix = '/usercallback?state='; var 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
ซึ่งเรียกใช้เมธอดที่StateTokenBuilder.withMethod(method)
ระบุไว้
รีเทิร์น
StateTokenBuilder
— ออบเจ็กต์ที่ใช้เพื่อดำเนินการกระบวนการสร้างโทเค็นสถานะต่อ
newTrigger(functionName)
เริ่มกระบวนการสร้างทริกเกอร์ที่ติดตั้งได้ ซึ่งจะเรียกใช้ฟังก์ชันที่กำหนดเมื่อเริ่มทำงาน
// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction') .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3') .onEdit() .create();
พารามิเตอร์
ชื่อ | Type | คำอธิบาย |
---|---|---|
functionName | String | ฟังก์ชันที่จะเรียกเมื่อทริกเกอร์เริ่มทำงาน คุณใช้ฟังก์ชันจากไลบรารีที่รวมอยู่ได้ เช่น Library.libFunction1 |
รีเทิร์น
TriggerBuilder
— ออบเจ็กต์ที่ใช้เพื่อดำเนินการกระบวนการสร้างทริกเกอร์ต่อไป
การให้สิทธิ์
สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp