Class Session

เซสชัน

คลาส Session ให้สิทธิ์เข้าถึงข้อมูลเซสชัน เช่น อีเมลของผู้ใช้ (ในบางกรณี) และการตั้งค่าภาษา

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
getActiveUser()Userรับข้อมูลเกี่ยวกับผู้ใช้ปัจจุบัน
getActiveUserLocale()Stringรับการตั้งค่าภาษาของผู้ใช้ปัจจุบันเป็นสตริง เช่น en สำหรับภาษาอังกฤษ
getEffectiveUser()Userรับข้อมูลเกี่ยวกับผู้ใช้ที่สคริปต์ทำงานภายใต้สิทธิ์ของผู้ใช้
getScriptTimeZone()Stringรับเขตเวลาของสคริปต์
getTemporaryActiveUserKey()Stringรับคีย์ชั่วคราวที่ไม่ซ้ำกันสำหรับผู้ใช้ที่ใช้งานอยู่ แต่ไม่เปิดเผยข้อมูลระบุตัวตนของผู้ใช้

เอกสารโดยละเอียด

getActiveUser()

รับข้อมูลเกี่ยวกับผู้ใช้ปัจจุบัน หากนโยบายความปลอดภัยไม่อนุญาตให้เข้าถึงข้อมูลประจำตัวของผู้ใช้ User.getEmail() จะแสดงสตริงว่าง สถานการณ์ที่อีเมลพร้อมใช้งานจะแตกต่างกันไป เช่น อีเมลของผู้ใช้จะไม่พร้อมใช้งานในบริบทใดๆ ที่อนุญาตให้สคริปต์ทํางานได้โดยไม่ต้องมีการให้สิทธิ์จากผู้ใช้รายนั้น เช่น ทริกเกอร์ onOpen(e) หรือ onEdit(e) แบบง่าย ฟังก์ชันที่กําหนดเองใน Google ชีต หรือเว็บแอปที่ติดตั้งใช้งานเป็น "เรียกใช้ในนามของฉัน" (นั่นคือ ได้รับอนุญาตจากนักพัฒนาแอปแทนผู้ใช้) อย่างไรก็ตาม โดยทั่วไปแล้ว ข้อจำกัดเหล่านี้จะไม่มีผลหากนักพัฒนาซอฟต์แวร์เรียกใช้สคริปต์ด้วยตนเอง หรืออยู่ในโดเมน Google Workspace เดียวกันกับผู้ใช้

// Log the email address of the person running the script.
const email = Session.getActiveUser().getEmail();
Logger.log(email);

รีเทิร์น

User - ผู้ใช้ปัจจุบัน

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

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

  • https://www.googleapis.com/auth/userinfo.email

getActiveUserLocale()

รับการตั้งค่าภาษาของผู้ใช้ปัจจุบันเป็นสตริง เช่น en สำหรับภาษาอังกฤษ

// Log the language setting of the person running the script.
Logger.log(Session.getActiveUserLocale());

รีเทิร์น

String - สตริงที่แสดงการตั้งค่าภาษาของผู้ใช้


getEffectiveUser()

รับข้อมูลเกี่ยวกับผู้ใช้ที่สคริปต์ทำงานภายใต้สิทธิ์ของผู้ใช้ หากสคริปต์เป็น เว็บแอปที่ตั้งค่าเป็น "ดำเนินการในฐานะฉัน" (นักพัฒนาแอป) ระบบจะแสดงผลบัญชีผู้ใช้ของนักพัฒนาแอป หากสคริปต์ทำงานภายใต้ทริกเกอร์ที่ติดตั้งได้ ฟังก์ชันนี้จะแสดงบัญชีของผู้ใช้ที่สร้างทริกเกอร์ ในสถานการณ์อื่นๆ ส่วนใหญ่ การดำเนินการนี้จะแสดงบัญชีเดียวกับ getActiveUser()

// Log the email address of the user under whose authority the script is
// running.
const email = Session.getEffectiveUser().getEmail();
Logger.log(email);

รีเทิร์น

User — ผู้ใช้ที่สคริปต์ทำงานภายใต้อำนาจ

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

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

  • https://www.googleapis.com/auth/userinfo.email

getScriptTimeZone()

รับเขตเวลาของสคริปต์ สคริปต์ใหม่จะใช้เขตเวลาของเจ้าของเป็นค่าเริ่มต้น แต่คุณเปลี่ยนเขตเวลาของสคริปต์ได้โดยคลิกไฟล์ > พร็อพเพอร์ตี้ของโปรเจ็กต์ในโปรแกรมแก้ไขสคริปต์ โปรดทราบว่าสเปรดชีตมีเขตเวลาแยกต่างหาก ซึ่งคุณเปลี่ยนได้โดยคลิกไฟล์ > การตั้งค่าสเปรดชีตใน Google ชีต เขตเวลาของสเปรดชีตที่แตกต่างจากเขตเวลาของสคริปต์เป็นแหล่งที่มาของข้อบกพร่องในการเขียนสคริปต์ที่พบบ่อย

// Log the time zone of the script.
const timeZone = Session.getScriptTimeZone();
Logger.log(timeZone);

รีเทิร์น

String - เขตเวลาของสคริปต์


getTemporaryActiveUserKey()

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

// Log the temporary key of the person running the script.
Logger.log(Session.getTemporaryActiveUserKey());

รีเทิร์น

String - คีย์ผู้ใช้ที่ใช้งานอยู่ชั่วคราว

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