کاربران باید پروژه های اسکریپتی را که به داده های آنها دسترسی دارند یا از طرف آنها عمل می کنند مجوز دهند. هنگامی که کاربر برای اولین بار اسکریپتی را اجرا می کند که نیاز به مجوز دارد، UI یک اعلان برای شروع جریان مجوز ارائه می دهد.
در طول این جریان، رابط کاربری به کاربر میگوید که اسکریپت برای انجام چه کاری اجازه میخواهد. به عنوان مثال، یک اسکریپت ممکن است برای خواندن پیامهای ایمیل کاربر یا ایجاد رویدادها در تقویم او مجوز بخواهد. پروژه اسکریپت این مجوزهای فردی را به عنوان دامنه های OAuth تعریف می کند.
برای اکثر اسکریپت ها، Apps Script به طور خودکار تشخیص می دهد که چه محدوده هایی برای شما مورد نیاز است. شما می توانید دامنه هایی را که یک اسکریپت استفاده می کند در هر زمان مشاهده کنید . همچنین میتوانید با استفاده از رشتههای URL ، دامنهها را به صراحت در مانیفست خود تنظیم کنید. گاهی اوقات برای برخی از برنامههای کاربردی مانند افزونهها، به صراحت دامنهها تنظیم میشود، زیرا برنامههای منتشر شده همیشه باید از باریکترین دامنه ممکن استفاده کنند.
در طول جریان مجوز، Apps Script توضیحات قابل خواندن توسط انسان از محدوده های مورد نیاز را به کاربر ارائه می دهد. برای مثال، اگر اسکریپت شما نیاز به دسترسی فقط خواندنی به صفحات گسترده شما دارد، مانیفست ممکن است دارای محدوده https://www.googleapis.com/auth/spreadsheets.readonly
باشد. در طول جریان مجوز، یک اسکریپت با این محدوده از کاربر میخواهد تا به این برنامه اجازه دهد تا «شفگگستردههای Google خود را مشاهده کند».
برخی از حوزه ها شامل برخی دیگر می شود. به عنوان مثال، زمانی که دامنه مجاز است https://www.googleapis.com/auth/spreadsheets
اجازه دسترسی خواندن و نوشتن به صفحات گسترده را می دهد.
دامنه های مشاهده
با انجام کارهای زیر می توانید محدوده های مورد نیاز پروژه اسکریپت خود را مشاهده کنید:
- پروژه اسکریپت را باز کنید.
- در سمت چپ، روی نمای کلی کلیک کنید.
- محدوده های زیر پروژه OAuth Scopes را مشاهده کنید.
تنظیم دامنه های صریح
Apps Script به طور خودکار تعیین می کند که یک اسکریپت با اسکن کد آن برای فراخوانی های تابعی که به آنها نیاز دارد، به چه محدوده هایی نیاز دارد. برای بیشتر اسکریپتها این کافی است و در وقت شما صرفهجویی میکند، اما برای افزونههای منتشر شده، برنامههای وب، برنامههای چت Google و تماسهای Google Chat API باید کنترل مستقیم بیشتری بر دامنهها اعمال کنید.
گاهی اوقات Apps Script به طور خودکار به پروژه ها محدوده های بسیار مجاز اختصاص می دهد. این می تواند به این معنی باشد که اسکریپت شما بیشتر از آنچه نیاز دارد از کاربر درخواست می کند که تمرین بدی است. برای اسکریپت های منتشر شده، باید محدوده های گسترده را با مجموعه محدودتری جایگزین کنید که نیازهای اسکریپت را پوشش دهد و نه بیشتر.
با ویرایش فایل مانیفست آن می توانید به صراحت محدوده هایی را که پروژه اسکریپت خود استفاده می کند تنظیم کنید. فیلد مانیفست oauthScopes
آرایه ای از تمام حوزه های مورد استفاده پروژه است. برای تنظیم محدوده پروژه، موارد زیر را انجام دهید:
- پروژه اسکریپت را باز کنید.
- در سمت چپ، روی تنظیمات پروژه کلیک کنید.
- کادر بررسی نمایش فایل مانیفست "appsscript.json" در ویرایشگر را انتخاب کنید.
- در سمت چپ، روی ویرایشگر کلیک کنید.
- در سمت چپ، روی فایل
appsscript.json
کلیک کنید. - فیلد سطح بالا با برچسب
oauthScopes
را پیدا کنید. اگر موجود نیست، می توانید آن را اضافه کنید. - فیلد
oauthScopes
آرایه ای از رشته ها را مشخص می کند. برای تنظیم محدوده هایی که پروژه شما استفاده می کند، محتویات این آرایه را با محدوده هایی که می خواهید استفاده کند جایگزین کنید. به عنوان مثال:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- در بالا، روی ذخیره کلیک کنید.
تأیید OAuth
برخی از حوزههای OAuth حساس هستند زیرا اجازه دسترسی به دادههای کاربر Google را میدهند. اگر پروژه اسکریپت شما از محدودههایی استفاده میکند که اجازه دسترسی به دادههای کاربر را میدهد، پروژه باید قبل از اینکه بتوانید آن را بهصورت عمومی بهعنوان یک برنامه وب یا افزونه منتشر کنید، از تأیید مشتری OAuth عبور کند. برای اطلاعات بیشتر، راهنماهای زیر را ببینید:
- تأیید مشتری OAuth برای Apps Script
- برنامه های تایید نشده
- سؤالات متداول تأیید OAuth
- سرویس Google APIs: خط مشی داده های کاربر
محدوده های محدود
علاوه بر حوزههای حساس، محدودههای خاصی بهعنوان محدود طبقهبندی میشوند و مشمول قوانین اضافی هستند که به محافظت از دادههای کاربر کمک میکنند. اگر قصد دارید یک برنامه وب یا افزونه ای را منتشر کنید که از یک یا چند محدوده محدود استفاده می کند، برنامه قبل از انتشار باید از همه محدودیت های مشخص شده پیروی کند.
قبل از اقدام به انتشار ، فهرست کامل محدودههای محدود را مرور کنید. اگر برنامه شما از هر یک از آنها استفاده می کند، باید قبل از انتشار، از الزامات اضافی برای محدوده های API خاص پیروی کنید.