Class Session
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
الجلسة
توفّر فئة Session إمكانية الوصول إلى معلومات الجلسة، مثل عنوان البريد الإلكتروني للمستخدم (في
بعض الحالات) وإعدادات اللغة.
الطرق المتوقّفة
الطريقة | نوع القيمة التي يتم عرضها | وصف قصير |
getTimeZone()
| String | تحصل على المنطقة الزمنية للنص البرمجي. |
getUser()
| User | للحصول على معلومات عن المستخدم الحالي |
مستندات تفصيلية
getActiveUser()
للحصول على معلومات عن المستخدم الحالي إذا كانت سياسات الأمان لا تسمح بالوصول إلى هوية
المستخدم، تعرض User.getEmail()
سلسلة فارغة. تختلف الظروف التي يكون فيها عنوان البريد الإلكتروني متاحًا: على سبيل المثال، لا يتوفّر عنوان البريد الإلكتروني للمستخدم في أي سياق يسمح بتشغيل نص برمجي بدون تفويض هذا المستخدم، مثل عامل تشغيل onOpen(e)
أو onEdit(e)
بسيط أو دالة مخصّصة في "جداول بيانات Google" أو تطبيق ويب تم نشره "للتنفيذ بالنيابة عني" (أي أنّ المطوّر هو من أذن به بدلاً من المستخدم).
ومع ذلك، لا تنطبق هذه القيود بشكل عام إذا كان المطوّر يشغّل النص البرمجي بنفسه
أو كان ينتمي إلى نطاق 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()
تحصل على معلومات عن المستخدم الذي يتم تشغيل النص البرمجي بموجب سلطته. إذا كان النص البرمجي هو
تطبيق ويب تم ضبطه على "التنفيذ بصفتي" (المطوّر)، سيؤدي ذلك إلى عرض حساب مستخدم المطوّر. إذا كان
النص البرمجي قيد التشغيل ضمن مشغِّل
عمل قابل للتثبيت، سيؤدي ذلك إلى عرض حساب المستخدم الذي أنشأ مشغِّل العمل. في معظم
السيناريوهات الأخرى، يعرض هذا الحقل الحساب نفسه الذي يعرضه 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()
تحصل على المنطقة الزمنية للنص البرمجي. يتم ضبط النصوص البرمجية الجديدة تلقائيًا على المنطقة الزمنية للمالك، ولكن يمكن تغيير المنطقة الزمنية للنصوص البرمجية بالنقر على الملف > خصائص المشروع في محرِّر النصوص البرمجية. يُرجى العِلم أنّ جداول البيانات لها منطقة زمنية منفصلة، ويمكن تغييرها من خلال النقر على
ملف > إعدادات جدول البيانات في "جداول بيانات Google". إنّ المناطق الزمنية في جدول البيانات التي تختلف عن
المنطقة الزمنية للنص البرمجي هي مصدر شائع لأخطاء النصوص البرمجية.
// 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
: مفتاح المستخدم النشط المؤقت
الطرق المتوقّفة
getTimeZone()
تمّ إيقاف هذا العمود نهائيًا. تم إيقاف هذه الدالة نهائيًا ويجب عدم استخدامها في النصوص البرمجية الجديدة.
تحصل على المنطقة الزمنية للنص البرمجي. يتم ضبط النصوص البرمجية الجديدة تلقائيًا على المنطقة الزمنية للمالك، ولكن يمكن تغيير المنطقة الزمنية للنصوص البرمجية بالنقر على الملف > خصائص المشروع في محرِّر النصوص البرمجية. يُرجى العِلم أنّ جداول البيانات لها منطقة زمنية منفصلة، ويمكن تغييرها من خلال النقر على
ملف > إعدادات جدول البيانات في "جداول بيانات Google". إنّ المناطق الزمنية في جدول البيانات التي تختلف عن
المنطقة الزمنية للنص البرمجي هي مصدر شائع لأخطاء النصوص البرمجية.
// Log the time zone of the script.
const timeZone = Session.getTimeZone();
Logger.log(timeZone);
الإرجاع
String
: المنطقة الزمنية للنص البرمجي
getUser()
تمّ إيقاف هذا العمود نهائيًا. تم إيقاف هذه الدالة نهائيًا ويجب عدم استخدامها في النصوص البرمجية الجديدة.
الحصول على معلومات عن المستخدم الحالي
الإرجاع
User
: المستخدم الذي سجّل الدخول حاليًا
التفويض
تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/userinfo.email
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThe \u003ccode\u003eSession\u003c/code\u003e class in Apps Script allows you to access information about the current user and the script's environment, such as the user's locale and the script's time zone.\u003c/p\u003e\n"],["\u003cp\u003eYou can retrieve information about the active user, effective user, script time zone, and a temporary active user key using methods like \u003ccode\u003egetActiveUser()\u003c/code\u003e, \u003ccode\u003egetEffectiveUser()\u003c/code\u003e, \u003ccode\u003egetScriptTimeZone()\u003c/code\u003e, and \u003ccode\u003egetTemporaryActiveUserKey()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eSome methods like \u003ccode\u003egetTimeZone()\u003c/code\u003e and \u003ccode\u003egetUser()\u003c/code\u003e are deprecated and should be replaced with their updated counterparts such as \u003ccode\u003egetScriptTimeZone()\u003c/code\u003e and \u003ccode\u003egetActiveUser()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eWhile the user's email address can be accessed in certain circumstances using \u003ccode\u003egetActiveUser().getEmail()\u003c/code\u003e or \u003ccode\u003egetEffectiveUser().getEmail()\u003c/code\u003e, it may not be available if security policies restrict access or in contexts without explicit user authorization.\u003c/p\u003e\n"],["\u003cp\u003eAccessing user information may require specific authorization scopes, like \u003ccode\u003ehttps://www.googleapis.com/auth/userinfo.email\u003c/code\u003e, to be granted to the script.\u003c/p\u003e\n"]]],[],null,["# Class Session\n\nSession\n\nThe Session class provides access to session information, such as the user's email address (in\nsome circumstances) and language setting. \n\n### Methods\n\n| Method | Return type | Brief description |\n|-------------------------------------------------------------|------------------------------------------|-----------------------------------------------------------------------------------------------|\n| [getActiveUser()](#getActiveUser()) | [User](/apps-script/reference/base/user) | Gets information about the current user. |\n| [getActiveUserLocale()](#getActiveUserLocale()) | `String` | Gets the language setting of the current user as a string---for example, `en` for English. |\n| [getEffectiveUser()](#getEffectiveUser()) | [User](/apps-script/reference/base/user) | Gets information about the user under whose authority the script is running. |\n| [getScriptTimeZone()](#getScriptTimeZone()) | `String` | Gets the time zone of the script. |\n| [getTemporaryActiveUserKey()](#getTemporaryActiveUserKey()) | `String` | Gets a temporary key that is unique to the active user but does not reveal the user identity. |\n\n### Deprecated methods\n\n| Method | Return type | Brief description |\n|---------------------------------|------------------------------------------|------------------------------------------|\n| [getTimeZone()](#getTimeZone()) | `String` | Gets the time zone of the script. |\n| [getUser()](#getUser()) | [User](/apps-script/reference/base/user) | Gets information about the current user. |\n\nDetailed documentation\n----------------------\n\n### `get``Active``User()`\n\nGets information about the current user. If security policies do not allow access to the user's\nidentity, [User.getEmail()](/apps-script/reference/base/user#getEmail()) returns a blank string. The circumstances in which the\nemail address is available vary: for example, the user's email address is not available in any\ncontext that allows a script to run without that user's authorization, like a simple `on``Open(e)` or `on``Edit(e)` trigger, a custom function in Google Sheets, or a web app\ndeployed to \"execute as me\" (that is, authorized by the developer instead of the user).\nHowever, these restrictions generally do not apply if the developer runs the script themselves\nor belongs to the same Google Workspace domain as the user.\n\n```javascript\n// Log the email address of the person running the script.\nconst email = Session.getActiveUser().getEmail();\nLogger.log(email);\n```\n\n#### Return\n\n\n[User](/apps-script/reference/base/user) --- the current user\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/userinfo.email`\n\n*** ** * ** ***\n\n### `get``Active``User``Locale()`\n\nGets the language setting of the current user as a string---for example, `en` for English.\n\n```javascript\n// Log the language setting of the person running the script.\nLogger.log(Session.getActiveUserLocale());\n```\n\n#### Return\n\n\n`String` --- a string that represents the user's language setting\n\n*** ** * ** ***\n\n### `get``Effective``User()`\n\nGets information about the user under whose authority the script is running. If the script is a\nweb app set to \"execute as me\" (the developer), this returns the developer's user account. If\nthe script is running under an [installable\ntrigger](/apps-script/understanding_triggers), this returns the account of the user who created the trigger. In most other\nscenarios, this returns the same account as [getActiveUser()](#getActiveUser()).\n\n```javascript\n// Log the email address of the user under whose authority the script is\n// running.\nconst email = Session.getEffectiveUser().getEmail();\nLogger.log(email);\n```\n\n#### Return\n\n\n[User](/apps-script/reference/base/user) --- the user under whose authority the script is running\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/userinfo.email`\n\n*** ** * ** ***\n\n### `get``Script``Time``Zone()`\n\nGets the time zone of the script. New scripts default to the owner's time zone, but the\nscript's time zone can be changed by clicking **File \\\u003e Project properties** in the script\neditor. Note that spreadsheets have a separate time zone, which can be changed by clicking\n**File \\\u003e Spreadsheet settings** in Google Sheets. Spreadsheet time zones that differ from\nthe script time zone are a frequent source of scripting bugs.\n\n```javascript\n// Log the time zone of the script.\nconst timeZone = Session.getScriptTimeZone();\nLogger.log(timeZone);\n```\n\n#### Return\n\n\n`String` --- the time zone of the script\n\n*** ** * ** ***\n\n### `get``Temporary``Active``User``Key()`\n\nGets a temporary key that is unique to the active user but does not reveal the user identity.\nThe temporary key rotates every 30 days and is unique to the script.\n\n```javascript\n// Log the temporary key of the person running the script.\nLogger.log(Session.getTemporaryActiveUserKey());\n```\n\n#### Return\n\n\n`String` --- the temporary active user key\n\nDeprecated methods\n------------------\n\n### `get``Time``Zone()`\n\n\n**Deprecated.** This function is deprecated and should not be used in new scripts.\n\nGets the time zone of the script. New scripts default to the owner's time zone, but the\nscript's time zone can be changed by clicking **File \\\u003e Project properties** in the script\neditor. Note that spreadsheets have a separate time zone, which can be changed by clicking\n**File \\\u003e Spreadsheet settings** in Google Sheets. Spreadsheet time zones that differ from\nthe script time zone are a frequent source of scripting bugs.\n\n```javascript\n// Log the time zone of the script.\nconst timeZone = Session.getTimeZone();\nLogger.log(timeZone);\n```\n\n#### Return\n\n\n`String` --- the time zone of the script\n\n*** ** * ** ***\n\n### `get``User()`\n\n\n**Deprecated.** This function is deprecated and should not be used in new scripts.\n\nGets information about the current user.\n\n#### Return\n\n\n[User](/apps-script/reference/base/user) --- the currently signed in user\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/userinfo.email`"]]