Class 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.
var 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.
var email = Session.getEffectiveUser().getEmail();
Logger.log(email);

ไปกลับ

User — ผู้ใช้ที่ได้รับสิทธิ์ของสคริปต์

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

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

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

getScriptTimeZone()

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

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

ไปกลับ

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


getTemporaryActiveUserKey()

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

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

ไปกลับ

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

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