تطبيقات جوجل سكريبت (Google Apps Script) هي لغة برمجة نصية بسيطة نوعا ما تقوم على تطوير التطبيقات في منصة جوجل أبز. تقوم هذه اللغة على جافا سكريبت 1.6 مع بعض الأجزاء من جافا سكريبت 1.7 و1.8 كما تُوفر مجموعة فرعية من ECMAScript 5 API،[1] ومع ذلك؛ فبدلا من أن تشتغل اللغة مع العميل أو الزبون إلا أنها تعمل مع سحابة جوجل. وفقا لتطبيقات جوجل سكريبت فهي تُوفر طرق سهلة لإتمام المهام في منصة جوجل كما توفر طرقا أسهل لخدمة الطرف الثالث.[2] تطبيقات جوجل سكريبت هي أيضا أداة قوية تُمكن من إضافات مستندات جوجل وجداول البيانات والعروض التقديمية.[3]
الفوائد
- سهلة التعلم مقارنة مع جافا سكريبت
- تعمل في سحابة جوجل، حيث تقون بتصحيح نصوص التطبيقات والنصوص في متصفحات الويب.
- يمكن أن تُستخدم لخلق أدوات بسيطة ومنظمة ولا تستهلك موارد النظام.
- يمكن استخدامها كأداة بسيطة لإدارة مهام النظام.
- قائمة على مجتمع جوجل الذي يواصل دعمها وتطويرها. [2]
القيود
- محدودة نوعا ما — حيث أنها تعمل على سحابة جوجل فقط، مما يعني أن وقتها محدود؛ حيث أنها تنشط فقط عندما يقوم المستخدم بتشغيل البرنامج النصي، فضلا عن عدم تمكنها من الوصول إلى خدمات جوجل كاملة.[4]
- في الوقت الحالي لا يسمح متجر جوجل للتطبيقات بإجراء اتصال مباشر للغة مع قواعد بيانات الشركات، مما يعني أنها تفتقد للمفتاح الرئيسي لبناء التطبيقات، ومع ذلك فتطبيقات جوجل سكريبت تستطيع تجاوز هذا "الخلل" من خلال الاعتماد على خدمة JDBC، كما أن لها طريقة أخرى لحل هذا الإشكال وذلك عن طريق إجراء اتصال مسموح بها من خوادم جوجل لقواعد البيانات الداخلية لباقي الشركات.[5]
- بسبب طبيعة عمل تطبيقات جوجل سكريبت، فإن وظائفها المرتبطة بالتاريخ قد تتضرر أو بالأحرى قد تُعطي نتائج غير صحيحة وذلك بسبب تأخر وصول البيانات مقارنة بكل منطقة زمنية.[6]
أمثلة
تستخدم تطببقات جوجل سكريبت واجهة بسيطة إلى حد ما، كما تعتمد على خدمات DocList وكذلك خدمات Google Drive.
وهذا مثال على أحد أكواد تطبيقات جوجل سكريبت التي تعتمد على جافا سكريبت بشكل مباشر:
.
function doGet(e) { var app = UiApp.createApplication(); var scrollPanel = app.createScrollPanel(); // Scroll Panel is a Google Web Toolkit Widget tree = app.createTree(); // Tree is a Google Web Toolkit Widget tree.addItem(buildTree(app, "Enterprise 2.0 - Saqib")); scrollPanel.add(tree); scrollPanel.setHeight("500"); app.add(scrollPanel); return app; } function buildTree(a, searchTerm) { var tree = a.createTreeItem(); // TreeItem is Google Web Toolkit Widget tree.setText(searchTerm); // Use of the Google Apps Script DocList Service to retrieve the collections. var folders = DocsList.getFolder(searchTerm).getFolders(); for (var i = 0; i < folders.length; i++) { tree.addItem(buildTree(a, folders[i].getName())).setState(true, true); } var files = DocsList.getFolder(searchTerm).getFiles(); for (var i = 0; i < files.length; i++) { if (files[i].getType() == "document") { urlBase = "https://docs.google.com/document/edit?id="; iconHTML = "https://docs.google.com/images/doclist/icon_7_document_list.png"; } else if (files[i].getType() == "spreadsheet") { urlBase = "https://spreadsheets.google.com/ccc?key="; iconHTML = "https://docs.google.com/images/doclist/icon_7_spreadsheet_list.png"; } else if (files[i].getType() == "presentation") { urlBase = "https://docs.google.com/present/edit?id="; iconHTML = "https://docs.google.com/images/doclist/icon_7_presentation_list.png"; } else if (files[i].getType() == "drawing") { urlBase = "https://docs.google.com/drawings/edit?id="; iconHTML = "https://docs.google.com/images/doclist/icon_7_drawing_list.png"; } else { urlBase = "https://docs.google.com/fileview?id="; iconHTML = "https://docs.google.com/images/doclist/icon_7_generic_list.png"; } var image = a.createImage(iconHTML); var fileLabel = a.createAnchor(files[i].getName(), urlBase+ files[i].getId()); var fileLabelPanel = a.createHorizontalPanel(); fileLabelPanel.add(image); fileLabelPanel.add(fileLabel); tree.addItem(fileLabelPanel).setState(true, true); } return tree; }
أما دمج HTML مع GAS وGWT فيعطي الكود التالي:[7]
function doGet() { var app = UiApp.createApplication(); app.add(app.createHTML("<b>Hello World!</b>")); return app; }
إضافات
في آذار/مارس 2014، أدخلت جوجل إضافات جديدة لمنصتها على غرار المستندات والأوراق، كما أضافت وظائف جديدة تُتيح للمستخدمين التحرر بشكل أكبر من قبيل دمج مهام سير العمل والرسوم البيانية ... كل إضافات جوجل بُنيت 100% بـتطبيقات جوجل سكريبت أو ببساطة تم الاعتماد عليها لعرض واجهة مستخدم بسيطة يسهل على المحررين التعامل معها لأداء معظم مهامهم.[8][9]
المراجع
- Kienle, Holger (May–June 2010). "It's About Time to Take JavaScript (More) Seriously". IEEE Software. 27 (3): 60–62. doi:10.1109/MS.2010.76. مؤرشف من الأصل في 11 أكتوبر 201225 مارس 2011.
- Google Apps Script - تصفح: نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
- Bring a little something extra to Docs and Sheets with add-ons - تصفح: نسخة محفوظة 04 مارس 2016 على موقع واي باك مشين.
- Quotas for Google Services | Apps Script | Google Developers - تصفح: نسخة محفوظة 14 يوليو 2018 على موقع واي باك مشين.
- JDBC | Apps Script | Google Developers - تصفح: نسخة محفوظة 27 أبريل 2016 على موقع واي باك مشين.
- "Issue 1035: utilities.formatdate subtracts a day". مؤرشف من الأصل في 07 أكتوبر 201617 ديسمبر 2012.
- [1] GAS HTML class documentation نسخة محفوظة 18 يناير 2013 على موقع واي باك مشين.
- UI Style Guide for Add-ons - تصفح: نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
- I've started a little experiment... - تصفح: نسخة محفوظة 26 فبراير 2017 على موقع واي باك مشين.