توفّر "برمجة تطبيقات Google" أكثر من 30 خدمة مُدمجة للتفاعل مع
وبيانات المستخدم وأنظمة Google الأخرى والأنظمة الخارجية. هذه الخدمات
يتم تقديمها ككائنات عامة تشبه معيار JavaScript
Math
. على سبيل المثال، تمامًا كما يوفّر Math
طرقًا مثل random()
و
ثوابت مثل PI
، يوفّر في Apps Script
خدمة جداول البيانات طرقًا مثل
openById(id)
،
وفئات (عناصر فرعية) مثل
Range
، وقوائم تصانيف مثل
DataValidationCriteria
.
الوثائق المرجعية للخدمات التي تتحكم Google Workspace يتم جمع المنتجات في "Google Workspace الخدمات" ضمن "المرجع" في الشريط الجانبي لهذا الموقع. خدمات المرافق (للأشياء) مثل إنشاء واجهات المستخدم أو تحليل XML أو كتابة بيانات السجل) يتم جمعها في قسم "خدمات النص البرمجي" .
ميزات JavaScript الحديثة
تتوافق "برمجة تطبيقات Google" مع وقتَي تشغيل JavaScript: الطريقة الحديثة V8 وآخر أقدم يدعم Mozilla مترجم JavaScript لتطبيق Rhino
تتوافق بيئة تشغيل V8 مع الإصدارات الأحدث بنية ECMAScript وميزاتها. وتستند بيئة تشغيل Rhino إلى الأقدم الإصدار 1.6 من JavaScript عادي، بالإضافة إلى بعض الميزات من 1.7 1.8 يمكنك اختيار وقت التشغيل بحرية لاستخدامه مع النص البرمجي، ولكننا ننصح بشدة باستخدام وقت التشغيل V8.
تتوافق كل بيئة تشغيل مع فئات وكائنات JavaScript المتاحة لـ
البرنامج بالإضافة إلى الأدوات
وخدمات Google المتقدّمة يمكن أن تستخدم
النصوص البرمجية الكائنات الشائعة مثل
Array
و
Date
و
RegExp
و
وما إلى ذلك،
بالإضافة إلى الكائنات الشاملة
Math
و
Object
.
استخدام ميزة "الإكمال التلقائي"
يقدّم محرِّر النصوص البرمجية ميزة "مساعدة المحتوى"، والتي تُعرف بشكلٍ شائع أكثر باسم "الإكمال التلقائي"، والتي تكشف عن العناصر الشاملة بالإضافة إلى الطرق والعناصر المدرَجة في القوائم التي تكون صالحة في السياق الحالي للنص البرمجي. تظهر اقتراحات الإكمال التلقائي تلقائيًا عند كتابة نقطة بعد استدعاء مثيل أو قائمة أو طريقة شاملة يعرض فئة Apps Script. على سبيل المثال:
- إذا كتبت الاسم الكامل لكائن عمومي أو حددت واحدًا من الإكمال التلقائي،
ثم اكتب
.
(نقطة)، وستشاهد جميع الطرق والتعدادات لهذه الفئة. - إذا كتبت بضع أحرف، ستظهر لك كل الاقتراحات ال válida التي تبدأ بهذه الأحرف.
فهم الكائنات العامة
توفر كل خدمة كائنًا عموميًا واحدًا على الأقل (المستوى الأعلى)؛ على سبيل المثال،
يتم الوصول إلى خدمة Gmail فقط من
الكائن GmailApp
. تقدّم بعض الخدمات
كائنات عالمية متعدّدة. على سبيل المثال، تتضمّن
الخدمة الأساسية أربعة كائنات عالمية:
Browser
و
Logger
و
MimeType
و
Session
.
طرق الاتصال
تتضمّن العناصر الشاملة لجميع الخدمات المتقدّمة أو المضمّنة تقريبًا طرقًا تؤدي إلى عرض بيانات أو فئة في Apps Script. تُجري النصوص البرمجية مكالمات بالطريقة التالية:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
على سبيل المثال، يمكن لنص برمجي أن يرسل رسالة بريد إلكتروني من خلال استدعاء
sendEmail(recipient, subject, body)
لخدمة Gmail مثل:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
إذا عرضت طريقة فئة أخرى لبرمجة التطبيقات، يمكنك سلسلة استدعاءات الطرق على واحدة
الخط. (تظهر أنواع الإرجاع في كلٍ من الإكمال التلقائي وفي مرجع طريقة ما
documentation.) على سبيل المثال، تُعرِض الطريقة
DocumentApp.create()
Document
، وبالتالي، فإنّ القسمَين التاليَين من الرمز البرمجي متكافئان:
var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
.appendParagraph('New paragraph.');
الوصول إلى صفوف الأطفال
تتضمّن كل خدمة فئة فرعية واحدة أو أكثر لا يمكن الوصول إليها من
المستوى الأعلى كما يمكن الوصول إلى عنصر شامل. لا يمكنك استخدام الكلمة الرئيسية new
من أجل
إنشاء هذه الفئات، كما هو ممكن مع فئات جافا سكريبت القياسية مثل
Date
;
لا يمكنك الوصول إلى فئة فرعية إلا من خلال استدعاء طريقة تُرجعها. إذا لم تكن متأكّدًا من كيفية الوصول إلى فئة معيّنة، انتقِل إلى الصفحة الجذر لمستندات مرجع الخدمة وابحث عن طريقة تعرض الفئة التي تريدها.
التعامل مع الواجهات
تتضمّن بعض الخدمات فئات خاصة مصنّفة على أنّها "واجهات"
في المستندات المرجعية. هذه هي الفئات العامة التي تُستخدَم كأنواع إرجاع
للطرق التي لا يمكنها تحديد النوع الدقيق مسبقًا؛ على سبيل المثال،
طريقة خدمة المستندات
Body.getChild(childIndex)
تعرض كائن Element
عامًا.
Element
هي واجهة تمثّل فئة أخرى، ربما
Paragraph
أو
Table
. نادرًا ما تتضمن كائنات الواجهة
مفيدة في حد ذاتها؛ بدلاً من ذلك، فأنت تريد عادةً استدعاء طريقة مثل
Element.asParagraph()
لإعادة تحويل الكائن إلى فئة محددة.
العمل مع القوائم المحددة
تتضمن معظم الخدمات بعض التعدادات (أنواع تعداد) للقيم المذكورة. بالنسبة
مثال، تستخدم خدمة Drive التعدادات
Access
و
Permission
لتحديد المستخدمين
إمكانية الوصول إلى ملف أو مجلد. في جميع الحالات تقريبًا، يمكنك الوصول إلى هذه التعدادات
من الكائن العمومي. على سبيل المثال، تبدو الدعوة إلى الطريقة
Folder.setSharing(accessType, permissionType)
على النحو التالي:
// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);