کلاس Session دسترسی به اطلاعات session، مانند آدرس ایمیل کاربر (در برخی شرایط) و تنظیمات زبان را فراهم میکند.
روشها
| روش | نوع بازگشتی | شرح مختصر |
|---|---|---|
get Active User() | User | اطلاعات مربوط به کاربر فعلی را دریافت میکند. |
get Active User Locale() | String | تنظیمات زبان کاربر فعلی را به صورت یک رشته دریافت میکند - برای مثال، en برای انگلیسی. |
get Effective User() | User | اطلاعاتی در مورد کاربری که اسکریپت تحت اختیار او در حال اجرا است، دریافت میکند. |
get Script Time Zone() | String | منطقه زمانی اسکریپت را دریافت میکند. |
get Temporary Active User Key() | String | یک کلید موقت دریافت میکند که مختص کاربر فعال است اما هویت کاربر را فاش نمیکند. |
مستندات دقیق
getActiveUser()
اطلاعاتی در مورد کاربر فعلی دریافت میکند. اگر سیاستهای امنیتی اجازه دسترسی به هویت کاربر را ندهند، User.getEmail() یک رشته خالی برمیگرداند. شرایطی که آدرس ایمیل در دسترس است متفاوت است: به عنوان مثال، آدرس ایمیل کاربر در هیچ زمینهای که اجازه اجرای اسکریپت بدون مجوز آن کاربر را میدهد، مانند یک تریگر ساده onOpen(e) یا onEdit(e) ، یک تابع سفارشی در Google Sheets یا یک برنامه وب که برای "اجرا به عنوان من" (یعنی، توسط توسعهدهنده به جای کاربر مجاز شده است) مستقر شده است، در دسترس نیست. با این حال، این محدودیتها معمولاً در صورتی که توسعهدهنده خود اسکریپت را اجرا کند یا به همان دامنه Google Workspace کاربر تعلق داشته باشد، اعمال نمیشوند.
// Log the email address of the person running the script. const email = Session.getActiveUser().getEmail(); Logger.log(email);
بازگشت
User - کاربر فعلی
مجوز
اسکریپتهایی که از این روش استفاده میکنند، نیاز به مجوز با یک یا چند مورد از حوزههای زیر دارند:
-
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()
اطلاعاتی در مورد کاربری که اسکریپت تحت اختیار او اجرا میشود، دریافت میکند. اگر اسکریپت یک برنامه وب باشد که روی "اجرا به عنوان من" (توسعهدهنده) تنظیم شده باشد، این حساب کاربری توسعهدهنده را برمیگرداند. اگر اسکریپت تحت یک trigger قابل نصب اجرا شود، این حساب کاربری که trigger را ایجاد کرده است را برمیگرداند. در اکثر سناریوهای دیگر، این همان حساب کاربری getActiveUser() را برمیگرداند.
// Log the email address of the user under whose authority the script is // running. const email = Session.getEffectiveUser().getEmail(); Logger.log(email);
بازگشت
User - کاربری که اسکریپت تحت اختیار او در حال اجرا است
مجوز
اسکریپتهایی که از این روش استفاده میکنند، نیاز به مجوز با یک یا چند مورد از حوزههای زیر دارند:
-
https://www.googleapis.com/auth/userinfo.email
getScriptTimeZone()
منطقه زمانی اسکریپت را دریافت میکند. اسکریپتهای جدید به طور پیشفرض منطقه زمانی مالک را دارند، اما منطقه زمانی اسکریپت را میتوان با کلیک روی File > Project properties در ویرایشگر اسکریپت تغییر داد. توجه داشته باشید که صفحات گسترده دارای منطقه زمانی جداگانهای هستند که میتوان آن را با کلیک روی File > Spreadsheet settings در Google Sheets تغییر داد. مناطق زمانی صفحه گسترده که با منطقه زمانی اسکریپت متفاوت هستند، منبع مکرر اشکالات اسکریپتنویسی هستند.
// 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 - کلید موقت کاربر فعال