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

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
تطبيقات جوجل سكريبت
المطورون جوجل  تعديل قيمة خاصية المطور (P178) في ويكي بيانات
موقع الويب الموقع الرسمي  تعديل قيمة خاصية موقع الويب الرسمي (P856) في ويكي بيانات

تطبيقات جوجل سكريبت (بالإنجليزية: Google Apps Script) هي لغة برمجة نصية بسيطة نوعا ما تقوم على تطوير التطبيقات في منصة جوجل أبز. تقوم هذه اللغة على جافا سكريبت 1.6 مع بعض الأجزاء من جافا سكريبت 1.7 و1.8 كما تُوفر مجموعة فرعية من ECMAScript 5 API،[1] ومع ذلك؛ فبدلا من أن تشتغل اللغة مع العميل أو الزبون إلا أنها تعمل مع سحابة جوجل. وفقا لتطبيقات جوجل سكريبت فهي تُوفر طرق سهلة لإتمام المهام في منصة جوجل كما توفر طرقا أسهل لخدمة الطرف الثالث.[2] تطبيقات جوجل سكريبت هي أيضا أداة قوية تُمكن من إضافات مستندات جوجل وجداول البيانات والعروض التقديمية.[3]

الفوائد[عدل]

  1. سهلة التعلم مقارنة مع جافا سكريبت
  2. تعمل في سحابة جوجل، حيث تقون بتصحيح نصوص التطبيقات والنصوص في متصفحات الويب.
  3. يمكن أن تُستخدم لخلق أدوات بسيطة ومنظمة ولا تستهلك موارد النظام.
  4. يمكن استخدامها كأداة بسيطة لإدارة مهام النظام.
  5. قائمة على مجتمع جوجل الذي يواصل دعمها وتطويرها. [2]

القيود[عدل]

  1. محدودة نوعا ما — حيث أنها تعمل على سحابة جوجل فقط، مما يعني أن وقتها محدود؛ حيث أنها تنشط فقط عندما يقوم المستخدم بتشغيل البرنامج النصي، فضلا عن عدم تمكنها من الوصول إلى خدمات جوجل كاملة.[4]
  2. في الوقت الحالي لا يسمح متجر جوجل للتطبيقات بإجراء اتصال مباشر للغة مع قواعد بيانات الشركات، مما يعني أنها تفتقد للمفتاح الرئيسي لبناء التطبيقات، ومع ذلك فتطبيقات جوجل سكريبت تستطيع تجاوز هذا "الخلل" من خلال الاعتماد على خدمة JDBC، كما أن لها طريقة أخرى لحل هذا الإشكال وذلك عن طريق إجراء اتصال مسموح بها من خوادم جوجل لقواعد البيانات الداخلية لباقي الشركات.[5]
  3. بسبب طبيعة عمل تطبيقات جوجل سكريبت، فإن وظائفها المرتبطة بالتاريخ قد تتضرر أو بالأحرى قد تُعطي نتائج غير صحيحة وذلك بسبب تأخر وصول البيانات مقارنة بكل منطقة زمنية.[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]

المراجع[عدل]

  1. ^ 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. اطلع عليه بتاريخ 25 مارس 2011. 
  2. ^ Google Apps Script نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
  3. ^ Bring a little something extra to Docs and Sheets with add-ons نسخة محفوظة 04 مارس 2016 على موقع واي باك مشين.
  4. ^ Quotas for Google Services | Apps Script | Google Developers نسخة محفوظة 14 يوليو 2018 على موقع واي باك مشين.
  5. ^ JDBC | Apps Script | Google Developers نسخة محفوظة 27 أبريل 2016 على موقع واي باك مشين.
  6. ^ "Issue 1035: utilities.formatdate subtracts a day.". تمت أرشفته من الأصل في 07 أكتوبر 2016. اطلع عليه بتاريخ 17 ديسمبر 2012. 
  7. ^ [1] GAS HTML class documentation نسخة محفوظة 18 يناير 2013 على موقع واي باك مشين.
  8. ^ UI Style Guide for Add-ons نسخة محفوظة 28 أبريل 2016 على موقع واي باك مشين.
  9. ^ I've started a little experiment... نسخة محفوظة 26 فبراير 2017 على موقع واي باك مشين.