Google Apps Script برای Google Forms: راهنمای مبتدیان
پاسخ سریع: Google Apps Script پلتفرم رایگان و داخلی جاوااسکریپت گوگل برای خودکارسازی Forms، Sheets و دیگر اپلیکیشنهای Workspace است. این روشی است که افراد چیزهایی را که Forms بهطور بومی انجام نمیدهد اضافه میکنند — مثل ایمیلکردن مالک در هر ارسال، محدودکردن خودکار پاسخها، یا تولید یک تأییدیه PDF. به دانش کدنویسی پایه نیاز دارد، که مانع ورود واقعی آن است.
Google Forms عمداً ساده است، که یعنی بسیاری از درخواستهای رایج — «وقتی کسی ارسال کرد به من ایمیل بزن»، «بعد از ۵۰ پاسخ دیگر نپذیر»، «این فیلد را به روشی که Forms پشتیبانی نمیکند اعتبارسنجی کن» — بهطور پیشفرض مدیریت نمیشوند. Google Apps Script ابزاری است که گوگل به شما میدهد تا خودتان این شکاف را رایگان و بدون خروج از اکوسیستم گوگل پر کنید. این راهنما توضیح میدهد چیست، واقعبینانه چه کاری برای فرم شما میتواند انجام دهد، مثالی ساده از چگونگی ساختار آن، و واقعاً برای چه کسی مناسب است.
Google Apps Script چیست؟
Apps Script پلتفرم اسکریپتنویسی داخلی گوگل است، مبتنی بر جاوااسکریپت، که به شما امکان میدهد برنامههای کوچکی بنویسید که با اپلیکیشنهای Google Workspace — Forms، Sheets، Docs، Gmail، Calendar و بیشتر — تعامل دارند. کاملاً روی سرورهای گوگل اجرا میشود، پس چیزی برای نصب یا میزبانی جداگانهای برای مدیریت وجود ندارد. به یکی از این دو مکان دسترسی پیدا میکنید: از منوی سهنقطه فرم خود، Script editor را انتخاب کنید، یا Google Sheet متصل را باز کنید و به Extensions > Apps Script بروید. هر دو مسیر همان نوع ویرایشگر را باز میکنند، هرچند اسکریپتهای متصل به فرم در مقابل شیت زمینه شروع کمی متفاوتی دارند.
کارهایی که Apps Script به شما امکان میدهد که Forms بهطور بومی ارائه نمیدهد
- ایمیل خودکار به مالک فرم در هر ارسال جدید. Google Forms هیچ تنظیم اعلان بومی برای این کار ندارد — نزدیکترین گزینه داخلی یک خلاصه ایمیل دورهای از پاسخهای جدید است، نه یک ایمیل فوری. Apps Script میتواند لحظه رسیدن پاسخ، ایمیلی ارسال کند، که برای فرمهای حساس به زمان مانند درخواستهای پشتیبانی یا ثبتنامهای فوری اهمیت دارد. اگر دارید عیبیابی میکنید چرا اصلاً درباره پاسخها مطلع نمیشوید، آن یک مسئله مرتبط اما متفاوت است — راهنمای ما درباره Google Forms که پاسخ نمیپذیرد را ببینید.
- محدودکردن خودکار پاسخها بر اساس روز یا تعداد. افزونههای شخص ثالث «محدودکننده پاسخ» که یک فرم را مثلاً به ۵۰ ارسال محدود میکنند یا بعد از تاریخ خاصی میبندند، معمولاً خودشان روی تریگرهای Apps Script ساخته شدهاند که تعداد پاسخ یا تاریخ را بررسی و فرم را برنامهنویسیشده میبندند. راهنمای ما درباره بستن یک فرم Google پس از یک حد پاسخ هم مسیر افزونه و هم آنچه در پشتصحنه اتفاق میافتد را پوشش میدهد.
- اعتبارسنجی سفارشیای که Forms بهطور بومی نمیتواند انجام دهد. اعتبارسنجی داخلی Forms به قوانین پایهای مانند بازههای عددی یا الگوهای regex روی یک فیلد واحد محدود است. Apps Script میتواند چندین پاسخ را در برابر یکدیگر، یا در برابر داده خارجی، به روشهایی که گزینههای اعتبارسنجی بومی نمیتوانند، متقاطع بررسی کند.
- تولید خودکار تأییدیه PDF. یک اسکریپت میتواند یک پاسخ جدید را بگیرد، آن را به یک سند قالببندی کند، به PDF تبدیل کند و بهعنوان رسید یا تأییدیه به پاسخدهنده ایمیل کند — برای ثبتنامها، درخواستها و فرمهای سفارش مفید است.
یک مثال ساده، توضیحدادهشده مفهومی
در ادامه شکل کلی اسکریپتی است که هنگام ارسال کسی به مالک فرم ایمیل میفرستد. این برای نمایش ساختار توضیحی است — چیزی نیست که بدون تطبیق با سؤالات واقعی فرم خود آن را کپی-پیست کنید تا کدی آماده تولید باشد.
function onFormSubmit(e) {
// e.response holds the submitted form response
var responses = e.response.getItemResponses();
var summary = "";
responses.forEach(function (itemResponse) {
summary += itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n";
});
// Send the owner an email with the new response
MailApp.sendEmail("[email protected]", "New form response", summary);
}
قطعات کلیدی: onFormSubmit(e) یک تابع تریگر است — Apps Script آن را بهطور خودکار وقتی پاسخ جدیدی برسد فراخوانی میکند، و e داده رویداد را نگه میدارد، از جمله e.response، که به شما دسترسی به هر پاسخ از طریق getItemResponses() میدهد. از آنجا، اسکریپت میتواند هر کاری که سرویسهای Apps Script پشتیبانی میکنند انجام دهد — ارسال ایمیل، نوشتن در یک شیت، فراخوانی یک API خارجی، تولید یک سند. خود تریگر جداگانه در پنل Triggers ویرایشگر پیکربندی میشود، جایی که به آن میگویید این تابع را در «On form submit» اجرا کند.
راهاندازی، گامبهگام
- ویرایشگر Script را باز کنید از منوی سهنقطه فرم خود، یا از طریق Extensions > Apps Script روی Sheet متصل.
- یک تابع تریگر بنویسید مانند مثال بالا، با خواندن پاسخهای ارسالی از شیء رویداد.
- منطق خودکارسازی خود را اضافه کنید — ایمیل، PDF یا بررسی واقعی که میخواهید اجرا کنید.
- تریگر را راهاندازی کنید در بخش Triggers (آیکون ساعت در نوار کناری سمت چپ)، با افزودن تریگری جدید که تابع شما را روی رویداد «From form» / «On form submit» اجرا کند.
- مجوز بدهید و آزمایش کنید. اولین اجرا از شما میخواهد به اسکریپت اجازه دسترسی به فرم و Gmail خود را بدهید؛ آن را تأیید کنید، سپس یک پاسخ آزمایشی واقعی ارسال کنید تا مطمئن شوید همهچیز درست فعال میشود.
کجا بیشتر یاد بگیریم
Apps Script مستندات رسمی گستردهای مستقیماً از گوگل دارد، که سرویس Forms، تریگرها و هر اپلیکیشن دیگر Workspace که میتواند لمس کند را پوشش میدهد. اگر جدی به نوشتن اسکریپتهای خودتان هستید، آن قابلاعتمادترین و بهروزترین مرجع است، چون همراه با خود محصول نگهداری میشود، نه توسط شخص ثالث.
تریگرهای رایج فراتر از «on form submit»
ارسال فرم رایجترین تریگر است، اما تنها موردی نیست که برای فرمها مفید است. یک تریگر زمانمحور (که در پنل Triggers هم راهاندازی میشود) میتواند بهصورت برنامهای — ساعتی، روزانه، یا در زمان مشخص — مستقل از اینکه کسی پاسخی ارسال کرده یا نه، اجرا شود. این همان چیزی است که به اقدامات زمانبندیشدهای مانند بستن خودکار یک فرم در تاریخی مشخص، ارسال خلاصه روزانه پاسخهای روز بهجای یک ایمیل در هر ارسال، یا بایگانی پاسخهای قدیمی در شیتی جداگانه بهصورت مداوم قدرت میدهد. تریگرهای مبتنی بر ویرایشگر (onEdit) وقتی کسی سلولی را در صفحهگسترده متصل تغییر میدهد فعال میشوند، که مفید است اگر میخواهید اسکریپتی وقتی شما دستی یک پاسخ را در یک ستون وضعیت «پردازششده» یا «تأییدشده» علامت میزنید واکنش نشان دهد.
رفع اشکالات Apps Script
- اسکریپت وقتی فرمی ارسال میشود اجرا نمیشود: بررسی کنید تریگر واقعاً ذخیره شده و روی «On form submit» تنظیم شده، نه نوع رویداد دیگری — تریگرهای ساختهشده در نشستهای آزمایشی قبلی میتوانند بیصدا کنار یک تریگر جدیدتر و پیکربندینشدهای وجود داشته باشند، پس پنل Triggers را برای موارد تکراری بررسی کنید.
- خطاهای «Authorization required» در هر اجرا: مجوزهای Apps Script میتوانند لغو شوند اگر رمز عبور حساب گوگل خود را تغییر دهید یا اگر گوگل بهطور دورهای دامنههای حساسی مانند ارسال Gmail را دوباره بررسی کند. اسکریپت را یکبار دستی از ویرایشگر دوباره اجرا کنید تا درخواست مجوز دوباره فعال شود.
- اسکریپت وقتی دستی اجرا میشود کار میکند اما خودکار نه: برخی سرویسهای Apps Script (مانند نمایش یک پنجره رابط کاربری) فقط وقتی انسانی مستقیماً اسکریپت را اجرا کند کار میکنند، نه از یک تریگر خودکار — تریگرهای خودکار باید از اقدامات غیرتعاملی مانند ارسال ایمیل یا نوشتن در شیت استفاده کنند.
- ایمیلها ارسال نمیشوند: سطح رایگان Apps Script یک سهمیه روزانه ایمیل دارد (بیشتر در حساب Google Workspace نسبت به حساب شخصی Gmail) — فرمهای پرحجم میتوانند به آن سقف برسند، که باعث میشود ایمیلهای بعدی روز بیصدا شکست بخورند.
مانع ورود واقعی
Apps Script به کدنویسی واقعی نیاز دارد — بهطور مشخص، جاوااسکریپت پایه. این یک ابزار بدون کد نیست، و برخورد با آن مانند یک کلید تنظیم ساده اگر تا حالا کد ننوشته باشید منجر به ناامیدی میشود. خواندن و تطبیق مثالی کوتاه مانند مثال بالا برای یک مبتدی باانگیزه واقعبینانه است، اما ساختن چیزی پیچیدهتر، مانند اعتبارسنجی چندمرحلهای یا تولید PDF، به دانش برنامهنویسی واقعی نیاز دارد.
آن مانع دقیقاً همان شکافی است که افزونههای شخص ثالث بدون کد برای افرادی که به خودکارسازی بدون نوشتن اسکریپت نیاز دارند پر میکنند، و همان شکافی است که اپلیکیشنهای مخصوصی مانند FormMaker برای مسئلهای کاملاً متفاوت پر میکنند — ساخت و مدیریت خود فرم در موبایل، بدون نیاز به لمس کد اصلاً. هیچکدام جایگزین Apps Script برای سفارشیسازی عمیق نمیشود، اما هیچکدام هم به آن نیاز ندارد.
سؤالات متداول
Google Apps Script چیست؟
Google Apps Script پلتفرم داخلی مبتنی بر جاوااسکریپت گوگل برای خودکارسازی و گسترش اپلیکیشنهای Google Workspace است، از جمله Forms، Sheets و Gmail. رایگان روی سرورهای گوگل اجرا میشود و نیازی به نصب جداگانه ندارد.
آیا Google Forms میتواند هنگام ارسال کسی، ایمیل خودکار بفرستد؟
بهصورت بومی خیر. Google Forms هیچ تنظیم داخلی برای ایمیلکردن مالک فرم در هر ارسال ندارد. Apps Script میتواند با اجرای یک تابع تریگر کوچک هرگاه پاسخ جدیدی برسد، این کار را اضافه کند.
آیا برای استفاده از Apps Script باید کدنویسی بلد باشم؟
بله، حداقل جاوااسکریپت پایه. Apps Script یک محیط کدنویسی واقعی است، نه ابزاری بدون کد. اگر نمیخواهید کد بنویسید، بهجای آن به افزونههای بدون کد یا اپلیکیشنهای مخصوص نگاه کنید.
کجا ویرایشگر Apps Script را برای یک فرم Google باز کنم؟
از فرم خود، به منوی سهنقطه بروید و Script editor را انتخاب کنید، یا Google Sheet متصل را باز کنید و به Extensions > Apps Script بروید.
آیا محدودیتی برای تعداد ایمیلهایی که Apps Script میتواند روزانه بفرستد وجود دارد؟
بله. Apps Script یک سهمیه روزانه ارسال ایمیل اعمال میکند که برای حسابهای Google Workspace بیشتر از حسابهای شخصی رایگان Gmail است. فرمهای پرحجم که در هر ارسال ایمیل میفرستند میتوانند به آن سقف برسند، که ارزش بررسی دارد اگر ایمیلها در میانه یک روز پرکار ارسال متوقف شوند.