۱. مقدمهای بر اسکریپت برنامههای گوگل
در این آزمایشگاه کد، شما را با یکی از سادهترین راههای نوشتن کدی که به فناوریهای توسعهدهندگان گوگل دسترسی دارد، آشنا خواهیم کرد. همه این کارها با استفاده از جاوا اسکریپت، یک زبان توسعه وب رایج، انجام میشود. با استفاده از Google Apps Script، کدی خواهید نوشت که آدرس خیابان را از یک سلول در Google Sheet استخراج میکند، یک نقشه گوگل بر اساس آدرس ایجاد میکند و سپس نقشه را به عنوان پیوست با استفاده از Gmail ارسال میکند. بهترین قسمت؟ فقط چهار خط کد خواهد بود.
آنچه یاد خواهید گرفت
- نحوه استفاده از Google Apps Script با سرویسهای مختلف گوگل، مانند Google Sheets، Google Maps و Gmail.
- با استفاده از ویرایشگر درون مرورگر برای Apps Script، کد را توسعه دهید.
آنچه نیاز دارید
۲. نظرسنجی
چگونه از این آزمایشگاه کد/آموزش استفاده خواهید کرد؟
تجربه خود را با ابزارها و APIهای توسعهدهندگان Google Workspace چگونه ارزیابی میکنید؟
۳. مرور کلی
حالا که میدانید این آزمایشگاه کد درباره چیست، دقیقاً قرار است چه کاری انجام دهید؟
- کمی درباره Apps Script که مبتنی بر جاوا اسکریپت است، بیاموزید.
- یک صفحه گسترده Google Sheets ایجاد کنید.
- آدرس خیابان را در سلول بالا سمت چپ صفحه گسترده (A1) وارد کنید.
- یاد بگیرید که چگونه ویرایشگر Apps Script را برای هر سندی باز کنید.
- کد اسکریپت برنامهها را ویرایش، ذخیره و اجرا کنید.
- برای مشاهده نتیجه از جیمیل استفاده کنید.
بیایید شروع کنیم.
اسکریپت گوگل اپس چیست؟
Google Apps Script یک پلتفرم توسعه است که ایجاد اسکریپتها و برنامههای کوچک قابل ادغام با Google Workspace را سریع و آسان میکند. با Apps Script، شما:
- با جاوا اسکریپت کد بنویسید و به کتابخانههای داخلی برنامههای Google Workspace مانند Gmail، Calendar، Drive و غیره دسترسی داشته باشید.
- نیازی به نصب چیزی ندارید—ما یک ویرایشگر کد درست در مرورگرتان در اختیارتان قرار میدهیم و اسکریپتهای شما روی سرورهای گوگل اجرا میشوند.
- لازم نیست نگران مباحث پیچیدهای مانند امنیت و مجوزهای دسترسی به دادهها باشید، زیرا این پلتفرم این کار را برای شما انجام میدهد.
از Apps Script میتوان برای ایجاد برنامههای مختلف، از رباتهای چت گرفته تا برنامههای وب، استفاده کرد. یکی از محبوبترین کاربردها، گسترش قابلیتهای صفحه گسترده Google Sheets است. در ادامه این آزمایشگاه کد، یاد خواهید گرفت که چگونه از Apps Script برای گرفتن دادهها از یک صفحه گسترده و اتصال آن به سایر سرویسهای گوگل استفاده کنید.
۴. یک گوگل شیت ایجاد کنید و آدرس خیابان را وارد کنید
در یک صفحه گوگل جدید، با دنبال کردن این دستورالعملها، یک آدرس خیابان معتبر وارد کنید:
- با استفاده از این لینک ( sheets.google.com/create ) یک گوگل شیت ایجاد کنید. روش دیگر این است که به گوگل درایو خود ( drive.google.com ) بروید و روی New > Google Sheets > Blank spreadsheet کلیک کنید.

- در صفحه گسترده خالی، به اولین سلول در گوشه بالا سمت چپ (A1) بروید. این سلول در ستون A و ردیف 1 قرار خواهد گرفت. اگر نیاز به آشنایی مجدد دارید، میتوانید این توضیحات نمادگذاری A1 را بررسی کنید.
- یک آدرس خیابان معتبر در سلول وارد کنید. یک آدرس در جهان با موقعیت مکانی دقیق با استفاده از آدرس خیابان، کد پستی یا ترکیبی از شهر و ایالت/استان انتخاب کنید. در اینجا مثالی از یک آدرس در شهر نیویورک آورده شده است:

این تمام کاری است که باید در برگه انجام دهید. بیایید ویرایشگر را باز کنیم و مقداری کد بنویسیم.
۵. ویرایش کد اسکریپت برنامهها
حالا که یک گوگل شیت جدید دارید، وقت آن رسیده که اسکریپت صحافی شده آن را ویرایش کنید. این دستورالعملها را دنبال کنید:
ویرایشگر اسکریپت را باز کنید
در نوار منو، گزینه Extensions > Apps Script را انتخاب کنید تا ویرایشگر کد مرورگر برای Apps Script باز شود.
در یک تب جدید مرورگر، ویرایشگر کد، اسکریپت پیشفرضِ متصل به کانتینر را برای برگه نمایش میدهد. یک تابع پیشفرض به نام myFunction() به طور خودکار ایجاد میشود و مکاننمای شما درون تابع قرار میگیرد تا بتوانید شروع به کار کنید.
آدرس را از طریق ایمیل و نقشه گوگل ارسال کنید
کد «الگو» که به شما داده شده خالی است، بنابراین بیایید آن را با برنامه خودمان جایگزین کنیم.
- در ویرایشگر اسکریپت، بلوک کد پیشفرض
myFunction()را با کد زیر جایگزین کنید:
/** @OnlyCurrentDoc */
function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange('A1').getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('YOUR_EMAIL_ADDR', 'Map', 'See below.', {attachments:[map]});
}
- آدرس ایمیل جایگزین (
'YOUR_EMAIL_ADDR') را با یک آدرس معتبر جایگزین کنید. برای مثال، friend@example.com . - برای ذخیره اسکریپت خود، روی ذخیره کلیک کنید
.
- برای تغییر نام پروژه Apps Script خود، روی Untitled project کلیک کنید، عنوانی برای پروژه خود وارد کنید و روی Rename کلیک کنید.
بررسی کد
بیایید ۴ خط از تابع sendMap() که کل برنامه را تشکیل میدهد، بررسی کنیم. جالب اینجاست که کد به ۳ محصول مختلف گوگل اشاره میکند.
خط اول یک کامنت حاشیهنویسی است که بر مجوزدهی تأثیر میگذارد:
/** @OnlyCurrentDoc */
اکثر اسکریپتها قبل از اجرا، از کاربر مجوزهایی را درخواست میکنند. این مجوزها، کنترل میکنند که کاربر به اسکریپت چه اجازهای میدهد. خط اول، کامنتی است که حاوی یک حاشیهنویسی اختیاری است و به Apps Script دستور میدهد دسترسی به صفحهگسترده فعلی (برخلاف تمام صفحاتگسترده کاربر) را محدود کند. همیشه بهترین روش این است که وقتی فقط با یک فایل کار میکنید، این حاشیهنویسی را نیز اضافه کنید.
این کد از یک تعریف تابع معمولی جاوا اسکریپت برای sendMap() استفاده میکند:
function sendMap() {
خط بعدی سرویس Spreadsheet را که از طریق شیء SpreadsheetApp از Apps Script قابل دسترسی است، فراخوانی میکند. برگه برگردانده شده به متغیری با همین نام اختصاص داده میشود. متد getActiveSheet() یک ارجاع به شیء برگه فعلی دریافت کرده و آن را در متغیر sheet ذخیره میکند.
var sheet = SpreadsheetApp.getActiveSheet();
با شیء sheet ، ما با استفاده از getRange() به محدوده سلولی (از یک سلول واحد) در نمادگذاری A1 ارجاع میدهیم. یک "محدوده" گروهی از سلولها است، از جمله یک سلول واحد مانند سلول A1 (که آدرس را در آن وارد کردهایم). برای دریافت آنچه در داخل محدوده است، متد getValue() مقدار سلول بالا سمت چپ در محدوده را برمیگرداند و مقدار را به متغیر address اختصاص میدهد. همچنین میتوانید آدرسهای بیشتری اضافه کنید و از سلولهای مختلف بخوانید.
var address = sheet.getRange('A1').getValue();
خط سوم کد با استفاده از شیء Maps به سرویس نقشههای گوگل متصل میشود. newStaticMap() یک شیء نقشه استاتیک ایجاد میکند و متد addMarker() با استفاده از آدرس موجود در برگه، یک "پین" به نقشه اضافه میکند.
var map = Maps.newStaticMap().addMarker(address);
در نهایت، سرویس جیمیل از طریق شیء MailApp متد sendEmail() را فراخوانی میکند تا ایمیلی را که شامل متن "به زیر مراجعه کنید" و تصویر نقشه به عنوان پیوست است، ارسال کند.
GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}
۶. برنامههای Google Sheets، Maps و Gmail را اجرا کنید
پس از نامگذاری و ذخیره، زمان اجرای تابع فرا رسیده است. در بالای ویرایشگر، مطمئن شوید که sendMap() از لیست توابع انتخاب شده است و روی Run کلیک کنید.
یکی از ویژگیهای Apps Script که توسعهدهندگان از آن استقبال میکنند این است که شما نیازی به نوشتن کد مجوز برای دسترسی برنامه به دادههای کاربر ندارید. اگرچه Apps Script این کار را مدیریت میکند، اما کاربران برنامه شما همچنان باید به اسکریپت اجازه دسترسی به صفحات گسترده و ارسال ایمیل از طریق Gmail را بدهند. اولین کادر محاورهای مجوز به این شکل است:

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

پس از اعطای مجوز، اسکریپت به طور کامل اجرا میشود.
حساب ایمیلی را که پیام خود را به آن ارسال کردهاید بررسی کنید، باید ایمیلی با موضوع «نقشه» و پیامی شبیه به این پیدا کنید:

وقتی فایل پیوست را در ایمیل باز میکنید، باید یک نقشه گوگل با یک پین روی آدرسی که در برگه وارد کردهاید، دریافت کنید:

تنها با چهار خط کد، شما به سه محصول مختلف گوگل به روشی معنادار دسترسی پیدا کردید.
۷. منابع اضافی
کد ارائه شده در این آزمایشگاه کد، در مخزن گیتهاب آن به آدرس github.com/googleworkspace/apps-script-intro-codelab نیز موجود است. در زیر منابع بیشتری برای کمک به شما در بررسی عمیقتر مطالب پوشش داده شده در این آزمایشگاه کد و بررسی روشهای دیگر دسترسی به ابزارهای توسعهدهندگان گوگل به صورت برنامهنویسی ارائه شده است.
مستندات
- سایت مستندات اسکریپت گوگل اپس
- اسکریپت برنامهها: سرویس جیمیل
- اسکریپت برنامهها: سرویس صفحه گسترده
- اسکریپت برنامهها: سرویس نقشهها
ویدیوها
اخبار و بهروزرسانیها
- وبلاگ توسعهدهندگان فضای کاری گوگل
- توییتر: توسعهدهندگان فضای کاری گوگل (@workspacedevs)
سایر آزمایشگاههای کد
مقدماتی
- [گوگل شیت] اصول اولیه اسکریپتنویسی برنامهها با گوگل شیت
- [رابطهای برنامهنویسی کاربردی REST] از Google Workspace و Google APIs برای دسترسی به فایلها و پوشههای موجود در Google Drive خود استفاده کنید
متوسط
- [اسکریپت برنامهها] افزونههای Google Workspace برای Gmail
- [اسکریپت برنامهها] رباتهای سفارشی برای چت Hangouts
- [REST APIs] از Google Sheets به عنوان ابزار گزارشدهی برنامه خود استفاده کنید
- [رابطهای برنامهنویسی REST] با استفاده از BigQuery API، ارائههای Google Slides ایجاد کنید