Class ScriptApp

ScriptApp

เข้าถึงและจัดการการเผยแพร่สคริปต์และทริกเกอร์ คลาสนี้ช่วยให้ผู้ใช้สร้างทริกเกอร์สคริปต์และควบคุมการเผยแพร่สคริปต์ในรูปแบบบริการได้

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้Typeคำอธิบาย
AuthModeAuthModeการแจกแจงที่ระบุหมวดหมู่ของบริการที่ได้รับอนุญาตของ Apps Script ที่เรียกใช้ผ่านฟังก์ชันที่ทริกเกอร์ได้
AuthorizationStatusAuthorizationStatusการแจกแจงที่แสดงถึงสถานะการให้สิทธิ์ของสคริปต์
EventTypeEventTypeการแจกแจงที่แสดงถึงประเภทของเหตุการณ์ที่ถูกทริกเกอร์
InstallationSourceInstallationSourceการแจกแจงซึ่งแสดงวิธีการติดตั้งสคริปต์ให้แก่ผู้ใช้ในฐานะส่วนเสริม
TriggerSourceTriggerSourceการแจงนับที่แสดงถึงแหล่งที่มาของเหตุการณ์ที่ทําให้ทริกเกอร์เริ่มทํางาน
WeekDayWeekdayการแจกแจงซึ่งแสดงวันของสัปดาห์

วิธีการ

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
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คำอธิบาย
triggerTriggerทริกเกอร์ที่จะลบ

การให้สิทธิ์

สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 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คำอธิบาย
authModeAuthModeโหมดการให้สิทธิ์ที่มีการขอข้อมูลการให้สิทธิ์ ในเกือบทุกกรณี ค่าของ 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คำอธิบาย
documentDocumentไฟล์ 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คำอธิบาย
formFormไฟล์ 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คำอธิบาย
spreadsheetSpreadsheetไฟล์ 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คำอธิบาย
functionNameStringฟังก์ชันที่จะเรียกเมื่อทริกเกอร์เริ่มทำงาน คุณใช้ฟังก์ชันจากไลบรารีที่รวมอยู่ได้ เช่น Library.libFunction1

รีเทิร์น

TriggerBuilder — ออบเจ็กต์ที่ใช้เพื่อดำเนินการกระบวนการสร้างทริกเกอร์ต่อไป

การให้สิทธิ์

สคริปต์ที่ใช้วิธีการนี้ต้องได้รับสิทธิ์จากขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

  • https://www.googleapis.com/auth/script.scriptapp

วิธีการที่เลิกใช้งานแล้ว