تطبيقات جوجل سكريبت

تطبيقات جوجل سكريبت (بالإنجليزية: Google Apps Script)‏ هي لغة برمجة نصية بسيطة نوعًا ما تساعد على تطوير تطبيقات مفيدة على منصة قوقل ورك-سبيس (Google Workspace). تتيح لك البرمجة بلغة جافا سكريبت، وتدعم كذلك العديد من المميزات التي يُوفرها محرك جافاسكربت V8 المُدمج في قوقل كروم[1]؛ تعمل هذه الخدمة سحابة جوجل أي لا يتم تفيذ الأوامر البرمجية على جهازك بل على خوادم قوقل. وفقًا لتطبيقات جوجل سكريبت فهي تُوفر طرق سهلة لإتمام المهام في منصة جوجل كما توفر طرقًا أسهل لخدمة الطرف الثالث.[2] تطبيقات جوجل سكريبت هي أيضا أداة قوية تُمكن من إضافات مستندات جوجل وجداول البيانات والعروض التقديمية [3]، والتعامل مع الملفات على قوقل درايف.[4]

تطبيقات جوجل سكريبت

الفوائد

  1. سهلة التعلم، خاصةً لمن لهم خلفية برمجية عن لغات تعتمد على معاير إكماسربت.
  2. اتمتت الأمور الكلاسيكية التي تقوم بها باستخدام خدمات قوقل، مثل: إرسال رسائل بريد إلكتروني، أو أضافة حدث معين إلى تقويم قوقل بشكل تلقائي بناءً على شرط معين.
  3. تعمل في سحابة جوجل، حيث تقوم بترجمة الكود الذي تكتبه، من ثم تنفيذه سحابيًا.
  4. يمكن أن تُستخدم لخلق أدوات بسيطة ومنظمة ولا تستهلك موارد النظام.
  5. قائمة على مُجتمع جوجل الذي يواصل دعمها وتطويرها، وقد تم توفير توثيق رسمي للخدمة، وكذلك سلسلة فيديوهات قصيرة تدعى "Apps Script in a Snap" لشرح الإمكانيات التي تقدمها هذه الخدمة، كما وقد قم فريق GDG MENA من قوقل بصنع سلسلة أيضًا باللغة العربية ضمن قناتها على يوتيوب من تقديم آية سيد.

القيود

  1. محدودة نوعًا مًا — حيث أنها تعمل على سحابة جوجل فقط، مما يعني أن وقتها محدود؛ حيث أنها تنشط فقط عندما يقوم المستخدم بتشغيل البرنامج النصي، فضلا عن عدم تمكنها من الوصول إلى خدمات جوجل كاملة.[5]
  2. في الوقت الحالي لا يسمح متجر جوجل للتطبيقات بإجراء اتصال مباشر للغة مع قواعد بيانات الشركات، مما يعني أنها تفتقد للمفتاح الرئيسي لبناء التطبيقات، ومع ذلك فتطبيقات جوجل سكريبت تستطيع تجاوز هذا «الخلل» من خلال الاعتماد على خدمة JDBC، كما أن لها طريقة أخرى لحل هذا الإشكال وذلك عن طريق إجراء اتصال مسموح بها من خوادم جوجل لقواعد البيانات الداخلية لباقي الشركات.[6]
  3. بسبب طبيعة عمل تطبيقات جوجل سكريبت، فإن وظائفها المرتبطة بالتاريخ قد تتضرر أو بالأحرى قد تُعطي نتائج غير صحيحة وذلك بسبب تأخر وصول البيانات مقارنة بكل منطقة زمنية.[7]

أمثلة

تستخدم تطببقات جوجل سكريبت واجهة بسيطة إلى حد ما، كما تعتمد على خدمات 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 فيعطي الكود التالي:[8]

function doGet() {
  var app = UiApp.createApplication();
  app.add(app.createHTML("'''Hello World!'''"));
  return app;
}

إضافات

في آذار/مارس 2014، أدخلت جوجل إضافات جديدة لمنصتها على غرار المستندات والأوراق، كما أضافت وظائف جديدة تُتيح للمستخدمين التحرر بشكل أكبر من قبيل دمج مهام سير العمل والرسوم البيانية... كل إضافات جوجل بُنيت 100% بـتطبيقات جوجل سكريبت أو ببساطة تم الاعتماد عليها لعرض واجهة مستخدم بسيطة يسهل على المحررين التعامل معها لأداء معظم مهامهم.[9][10]

المراجع

  1. ^ "V8 Runtime Overview | Apps Script". Google Developers (بEnglish). Archived from the original on 2020-09-30. Retrieved 2021-06-08.
  2. ^ Google Apps Script نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
  3. ^ Bring a little something extra to Docs and Sheets with add-ons نسخة محفوظة 04 مارس 2016 على موقع واي باك مشين.
  4. ^ "Drive Service | Apps Script". Google Developers (بEnglish). Archived from the original on 2021-06-08. Retrieved 2021-06-08.
  5. ^ Quotas for Google Services | Apps Script | Google Developers نسخة محفوظة 14 يوليو 2018 على موقع واي باك مشين.
  6. ^ JDBC | Apps Script | Google Developers نسخة محفوظة 27 أبريل 2016 على موقع واي باك مشين.
  7. ^ "Issue 1035: utilities.formatdate subtracts a day". مؤرشف من الأصل في 2016-10-07. اطلع عليه بتاريخ 2012-12-17.
  8. ^ [1] GAS HTML class documentation نسخة محفوظة 18 يناير 2013 على موقع واي باك مشين.
  9. ^ UI Style Guide for Add-ons نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
  10. ^ I've started a little experiment... نسخة محفوظة 26 فبراير 2017 على موقع واي باك مشين.