เข้าถึงและจัดการการเผยแพร่สคริปต์และทริกเกอร์ คลาสนี้อนุญาตให้ผู้ใช้สร้างสคริปต์ ทริกเกอร์และควบคุมการเผยแพร่สคริปต์ในรูปแบบบริการ
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
---|---|---|
AuthMode | AuthMode | การแจกแจงที่ระบุหมวดหมู่ของบริการที่ได้รับอนุญาตที่ Apps Script ทำได้ ดำเนินการผ่านฟังก์ชันที่ทริกเกอร์ |
AuthorizationStatus | AuthorizationStatus | การแจงนับที่แสดงถึงสถานะการให้สิทธิ์ของสคริปต์ |
EventType | EventType | การแจงนับที่แสดงประเภทของเหตุการณ์ที่ถูกเรียก |
InstallationSource | InstallationSource | การแจกแจงแสดงวิธีติดตั้งสคริปต์เป็นส่วนเสริมให้กับผู้ใช้ |
TriggerSource | TriggerSource | การแจงนับที่แสดงถึงแหล่งที่มาของเหตุการณ์ที่ทำให้ทริกเกอร์เริ่มทำงาน |
WeekDay | Weekday | การแจกแจงแทนวันของสัปดาห์ |
เมธอด
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
deleteTrigger(trigger) | void | นำทริกเกอร์ที่ระบุออกเพื่อให้ทริกเกอร์ไม่ทำงานอีกต่อไป |
getAuthorizationInfo(authMode) | AuthorizationInfo | รับออบเจ็กต์ที่ใช้พิจารณาว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้ในการใช้สคริปต์นี้หรือไม่ บริการอื่นๆ และเพื่อระบุ URL สำหรับกล่องโต้ตอบการให้สิทธิ์ |
getIdentityToken() | String | รับโทเค็นข้อมูลประจำตัว OpenID Connect สำหรับ
ผู้ใช้ที่มีผล หากให้สิทธิ์ openid แล้ว |
getInstallationSource() | InstallationSource | แสดงค่า enum ที่ระบุวิธีที่สคริปต์ถูกติดตั้งเป็นส่วนเสริมสำหรับ ผู้ใช้ปัจจุบัน (เช่น ติดตั้งเองผ่าน Chrome เว็บหรือไม่ Store หรือผู้ดูแลระบบโดเมนเป็นผู้ติดตั้งให้กับผู้ใช้ทั้งหมดหรือไม่) |
getOAuthToken() | String | ได้สิทธิ์เข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีประสิทธิภาพ |
getProjectTriggers() | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดซึ่งเชื่อมโยงกับโปรเจ็กต์ปัจจุบันและผู้ใช้ปัจจุบัน |
getScriptId() | String | รับรหัสที่ไม่ซ้ำกันของโปรเจ็กต์สคริปต์ |
getService() | Service | รับออบเจ็กต์ที่ใช้ควบคุมการเผยแพร่สคริปต์เป็นเว็บแอป |
getUserTriggers(document) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดของผู้ใช้รายนี้ในเอกสารที่ระบุ สำหรับสคริปต์นี้หรือ ส่วนเสริมเท่านั้น |
getUserTriggers(form) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดของผู้ใช้รายนี้ในรูปแบบที่กำหนดสำหรับสคริปต์หรือส่วนเสริมนี้ เท่านั้น |
getUserTriggers(spreadsheet) | Trigger[] | รับทริกเกอร์ที่ติดตั้งได้ทั้งหมดของผู้ใช้รายนี้ในสเปรดชีตที่ระบุ สำหรับสคริปต์นี้ หรือ ส่วนเสริมเท่านั้น |
invalidateAuth() | void | ยกเลิกการให้สิทธิ์ที่ผู้ใช้ที่มีผลต้องเรียกใช้สคริปต์ปัจจุบัน |
newStateToken() | StateTokenBuilder | สร้างเครื่องมือสร้างสำหรับโทเค็นสถานะที่ใช้ใน Callback 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]); }
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
trigger | Trigger | ทริกเกอร์ที่จะลบ |
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
getAuthorizationInfo(authMode)
รับออบเจ็กต์ที่ใช้พิจารณาว่าผู้ใช้ต้องให้สิทธิ์สคริปต์นี้ในการใช้สคริปต์นี้หรือไม่ บริการอื่นๆ และเพื่อระบุ URL สำหรับกล่องโต้ตอบการให้สิทธิ์ หากสคริปต์ได้รับการเผยแพร่แล้ว เป็นส่วนเสริมที่ใช้ทริกเกอร์ที่ติดตั้งได้ ข้อมูลนี้จะสามารถ ใช้เพื่อควบคุมการเข้าถึงส่วนต่างๆ ของโค้ดที่ผู้ใช้ยังขาดฟังก์ชันที่จำเป็น การกันวงเงิน หรือส่วนเสริมจะขอให้ผู้ใช้เปิด URL สำหรับการให้สิทธิ์ได้ กล่องโต้ตอบเพื่อแก้ไขปัญหา
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); status = authInfo.getAuthorizationStatus(); url = authInfo.getAuthorizationUrl();
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
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 Web Token (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 เว็บหรือไม่ Store หรือผู้ดูแลระบบโดเมนเป็นผู้ติดตั้งให้กับผู้ใช้ทั้งหมดหรือไม่)
รีเทิร์น
InstallationSource
— แหล่งที่มาของการติดตั้ง
getOAuthToken()
ได้สิทธิ์เข้าถึง OAuth 2.0 สำหรับผู้ใช้ที่มีประสิทธิภาพ หากขอบเขต OAuth ของสคริปต์เพียงพอที่จะให้สิทธิ์ อีก API หนึ่งของ 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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
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());
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
spreadsheet | Spreadsheet | ไฟล์ Google ชีตที่อาจมีทริกเกอร์ที่ติดตั้งได้ |
รีเทิร์น
Trigger[]
— อาร์เรย์ของทริกเกอร์ที่ผู้ใช้รายนี้เป็นเจ้าของในสเปรดชีตที่ระบุ
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp
invalidateAuth()
ยกเลิกการให้สิทธิ์ที่ผู้ใช้ที่มีผลต้องเรียกใช้สคริปต์ปัจจุบัน ใช้เพื่อ ยกเลิกสิทธิ์สำหรับสคริปต์ปัจจุบัน มีประโยชน์อย่างยิ่งสำหรับฟังก์ชัน ติดแท็กเป็นการให้สิทธิ์แบบครั้งเดียว เนื่องจากฟังก์ชันการให้สิทธิ์แบบครั้งเดียวสามารถเรียกได้เพียง เรียกใช้ครั้งแรกหลังจากที่สคริปต์ได้รับสิทธิ์แล้ว หากคุณต้องการดำเนินการ หลังจากนั้น คุณต้องเพิกถอนการให้สิทธิ์ที่สคริปต์มี เพื่อให้ผู้ใช้สามารถดู กล่องโต้ตอบการให้สิทธิ์อีกครั้ง
ScriptApp.invalidateAuth();
การขว้าง
Error
— เมื่อการยกเลิกใช้งานล้มเหลว
newStateToken()
สร้างเครื่องมือสร้างสำหรับโทเค็นสถานะที่ใช้ใน Callback 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();
พารามิเตอร์
ชื่อ | ประเภท | คำอธิบาย |
---|---|---|
functionName | String | ฟังก์ชันที่จะเรียกใช้เมื่อทริกเกอร์เริ่มทำงาน คุณสามารถใช้ฟังก์ชันจาก
ไลบรารีที่รวม เช่น Library.libFunction1 |
รีเทิร์น
TriggerBuilder
— ออบเจ็กต์ที่ใช้เพื่อดำเนินการขั้นตอนการสร้างทริกเกอร์ต่อ
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/script.scriptapp