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

**تطبيقات جوجل سكريبت**  هي لغة برمجة نصية بسيطة نوعًا ما تساعد على تطوير تطبيقات مفيدة على منصة قوقل ورك-سبيس (Google Workspace). تتيح لك البرمجة بلغة جافا سكريبت، وتدعم كذلك العديد من المميزات التي يُوفرها محرك جافاسكربت V8 المُدمج في قوقل كروم؛ تعمل هذه الخدمة سحابة جوجل أي لا يتم تفيذ الأوامر البرمجية على جهازك بل على خوادم قوقل. وفقًا لتطبيقات جوجل سكريبت فهي تُوفر طرق سهلة لإتمام المهام في منصة جوجل كما توفر طرقًا أسهل لخدمة الطرف الثالث. تطبيقات جوجل سكريبت هي أيضا أداة قوية تُمكن من إضافات مستندات جوجل وجداول البيانات والعروض التقديمية ، والتعامل مع الملفات على قوقل درايف.

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

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

## أمثلة
تستخدم تطببقات جوجل سكريبت واجهة بسيطة إلى حد ما، كما تعتمد على خدمات DocList وكذلك خدمات Google Drive.

وهذا مثال على أحد أكواد تطبيقات جوجل سكريبت التي تعتمد على جافا سكريبت بشكل مباشر:

.
```javascript
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 فيعطي الكود التالي:


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


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

## المراجع

تصنيف:أطر عمل الويب
تصنيف:استحداثات متعلقة بالحواسيب في 2009
تصنيف:برمجيات متعددة المنصات
تصنيف:جافا سكريبت
تصنيف:خدمات جوجل
تصنيف:لغات برمجة بدئية الاعتماد
تصنيف:لغات برمجة نصية