اسکریپت برنامهها برای دسترسی به دادههای خصوصی از سرویسهای داخلی گوگل یا سرویسهای پیشرفته گوگل، به مجوز کاربر نیاز دارد.
اعطای حقوق دسترسی


Apps Script بر اساس اسکن کد، محدودههای مجوز (مانند دسترسی به فایلهای Google Sheets یا Gmail شما) را به طور خودکار تعیین میکند. کدی که کامنتگذاری شده است، همچنان میتواند درخواست مجوز ایجاد کند. اگر اسکریپتی نیاز به مجوز داشته باشد، هنگام اجرا یکی از پنجرههای محاورهای مجوز را که در اینجا نشان داده شده است، مشاهده خواهید کرد.
اسکریپتهایی که قبلاً مجاز کردهاید، در صورت اضافه شدن سرویسهای جدید توسط تغییر کد، درخواست مجوز اضافی نیز میکنند. اگر به عنوان یک برنامه وب که تحت هویت کاربری مالک اسکریپت اجرا میشود، به اسکریپتها دسترسی پیدا کنید، ممکن است درخواست مجوز نکنند.
لغو حقوق دسترسی
برای لغو دسترسی یک اسکریپت به دادههایتان، این مراحل را دنبال کنید:
- به صفحه مجوزهای حساب گوگل خود مراجعه کنید. (برای رفتن به این صفحه در آینده، به Google.com مراجعه کنید، سپس روی تصویر حساب خود در گوشه سمت راست بالای صفحه کلیک کنید. سپس، روی حساب من ، سپس برنامههای متصل و سایتها در بخش «ورود و امنیت» و در نهایت مدیریت برنامهها کلیک کنید.)
- روی نام اسکریپتی که میخواهید مجوز آن را لغو کنید کلیک کنید، سپس در سمت راست روی «حذف » کلیک کنید و در پنجرهی باز شده، «تأیید» را بزنید .
مجوزها و انواع اسکریپتها
هویت کاربری که یک اسکریپت با آن اجرا میشود - و بنابراین دادههایی که میتواند به آنها دسترسی داشته باشد - بسته به سناریویی که اسکریپت در آن اجرا میشود، متفاوت است، همانطور که در جدول زیر نشان داده شده است.
نوع اسکریپت | اسکریپت به صورت ... اجرا میشود. |
---|---|
مستقل ، افزونه یا وابسته به اسناد، برگهها، اسلایدها یا فرمها | کاربر پشت کیبورد |
تابع سفارشی در یک صفحه گسترده | کاربر ناشناس ؛ با این حال، محدودیتهای سهمیهبندی علیه کاربر در صفحه کلید محاسبه میشود. |
ابزارک وب اپلیکیشن یا سایتهای گوگل | کاربر در صفحه کلید یا مالک اسکریپت، بسته به گزینههای انتخاب شده هنگام استقرار برنامه |
ماشه قابل نصب | کاربری که تریگر را ایجاد کرده است |
محدودههای مجوزدهی دستی برای برگهها، اسناد، اسلایدها و فرمها
اگر در حال ساخت افزونه یا اسکریپت دیگری هستید که از سرویس Spreadsheet ، سرویس Document ، سرویس Slides یا سرویس Forms استفاده میکند، میتوانید پنجرهی مجوزدهی را طوری تنظیم کنید که فقط دسترسی به فایلهایی را که افزونه یا اسکریپت در آنها استفاده شده است، درخواست کند، نه دسترسی به تمام صفحات گسترده، اسناد یا فرمهای کاربر. برای انجام این کار، حاشیهنویسی JsDoc زیر را در یک کامنت در سطح فایل قرار دهید:
/**
* @OnlyCurrentDoc
*/
یک حاشیهنویسی متضاد، @NotOnlyCurrentDoc
، در صورتی در دسترس است که اسکریپت شما شامل کتابخانهای باشد که @OnlyCurrentDoc
را تعریف میکند، اما اسکریپت اصلی در واقع به دسترسی به چیزی بیش از فایل فعلی نیاز دارد.
چرخه عمر مجوز برای افزونهها
افزونههای Google Sheets، Docs، Slides و Forms عموماً از همان مدل مجوزدهی اسکریپتهایی که به یک سند متصل هستند، پیروی میکنند. با این حال، در شرایط خاص، توابع onOpen(e)
و onEdit(e)
آنها در حالت بدون مجوز اجرا میشوند که پیچیدگیهای بیشتری را ایجاد میکند. برای اطلاعات بیشتر، به راهنمای چرخه عمر مجوز افزونهها مراجعه کنید.
محدودیتهای کاربر برنامه OAuth
برنامههایی که از OAuth برای دسترسی به دادههای کاربر گوگل استفاده میکنند، از جمله پروژههای Apps Script، مشمول محدودیتهای مجوز هستند. برای جزئیات بیشتر به محدودیتهای کاربر برنامه OAuth مراجعه کنید.
رفتار احراز هویت مجدد با Apps Script
Apps Script فرکانس احراز هویت مجدد را که در تنظیمات سرویسهای ابری گوگل خود پیکربندی میکنید، اعمال نمیکند. دلیل این امر این است که Apps Script میتواند به طور خودکار با استفاده از triggerها اجرا شود، که بدون تعامل مستقیم کاربر عمل میکنند. این اجراهای خودکار، درخواستهای احراز هویت مجدد را فعال نمیکنند. برنامه Apps Script شما به طور خودکار از شما نمیخواهد که پس از مدت زمانی که مشخص کردهاید (مثلاً ۱۲ ساعت) دوباره احراز هویت کنید.