Class ScriptApp

ScriptApp

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

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

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

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
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]);
}

พารามิเตอร์

ชื่อประเภทคำอธิบาย
triggerTriggerทริกเกอร์ที่จะลบ

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

สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 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();

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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 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());

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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());

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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());

พารามิเตอร์

ชื่อประเภทคำอธิบาย
spreadsheetSpreadsheetไฟล์ 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();

พารามิเตอร์

ชื่อประเภทคำอธิบาย
functionNameStringฟังก์ชันที่จะเรียกใช้เมื่อทริกเกอร์เริ่มทำงาน คุณสามารถใช้ฟังก์ชันจาก ไลบรารีที่รวม เช่น Library.libFunction1

รีเทิร์น

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

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

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

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

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