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()

รับข้อมูลเขตเวลาของสคริปต์ สคริปต์ใหม่จะมีค่าเริ่มต้นเป็นเขตเวลาของเจ้าของ แต่สามารถเปลี่ยนแปลงเขตเวลาของสคริปต์ได้โดยคลิกไฟล์ > พร็อพเพอร์ตี้ของโปรเจ็กต์ในเครื่องมือแก้ไขสคริปต์ โปรดทราบว่าสเปรดชีตมีเขตเวลาแยกต่างหากซึ่งสามารถเปลี่ยนแปลงได้โดยคลิกไฟล์ > การตั้งค่าสเปรดชีตใน 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 — คีย์ผู้ใช้ชั่วคราวที่ใช้งานอยู่

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