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

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

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