คลาสเซสชันจะให้สิทธิ์เข้าถึงข้อมูลเซสชัน เช่น อีเมลของผู้ใช้ (ในบางสถานการณ์) และการตั้งค่าภาษา
วิธีการ
วิธีการ | ประเภทการแสดงผล | รายละเอียดแบบย่อ |
---|---|---|
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
— คีย์ผู้ใช้ชั่วคราวที่ใช้งานอยู่