خدمات Google المُدمَجة

توفّر "برمجة تطبيقات Google" أكثر من 30 خدمة مضمّنة للتفاعل مع بيانات المستخدمين وأنظمة Google الأخرى والأنظمة الخارجية. يتم توفير هذه الخدمات كعناصر شاملة مشابهة لعنصر Math الأساسي في JavaScript. على سبيل المثال، كما يوفّر Math طرقًا مثل random() وثوابت مثل PI، تقدّم خدمة "جداول بيانات Google" في Apps Script طرقًا مثل openById(id) وفئات (عناصر فرعية) مثل Range وقيم تعدادية مثل DataValidationCriteria.

يتم جمع المستندات المرجعية للخدمات التي تتحكّم في منتجات Google Workspace في قسم "خدمات Google Workspace" ضمن عنوان "المراجع" في الشريط الجانبي لهذا الموقع. يتم جمع الخدمات المساعدة (مثل إنشاء واجهات المستخدمين أو تحليل XML أو كتابة بيانات السجلّ) في قسم "خدمات البرامج النصية".

ميزات JavaScript الجديدة

تتوافق برمجة تطبيقات مع وقتَي تشغيل JavaScript: وقت التشغيل الحديث V8 ووقت التشغيل القديم الذي يعتمد على مفسّر Rhino JavaScript من Mozilla.

يتوافق وقت التشغيل V8 مع بنية وميزات ECMAScript الحديثة. يستند وقت تشغيل Rhino إلى معيار JavaScript 1.6 الأقدم، بالإضافة إلى بعض الميزات من 1.7 و 1.8. اختَر وقت التشغيل الذي تريد استخدامه مع النص البرمجي، ولكن ننصح بشدة باستخدام وقت التشغيل V8.

يتيح كل وقت تشغيل فئات JavaScript وعناصر متاحة للبرنامج النصي بالإضافة إلى خدمات Google المضمَّنة والمتقدّمة. يمكن أن تستخدم النصوص البرمجية كائنات شائعة، مثل Array وDate وRegExp ووغيرها، بالإضافة إلى الكائنَين العامَين Math وObject.

بما أنّ رمز Apps Script يتم تنفيذه على خوادم Google (باستثناء صفحات خدمة HTML)، لا تتوفّر ميزات JavaScript المستندة إلى المتصفّح، مثل معالجة DOM أو واجهة برمجة التطبيقات Window، في Apps Script.

الإكمال التلقائي

يوفّر أداة تعديل النصوص البرمجية ميزة "مساعدة المحتوى"، والتي تُعرف باسم "الإكمال التلقائي"، وتكشف عن العناصر العامة بالإضافة إلى الطرق والتعدادات التي تكون صالحة في السياق الحالي للنص البرمجي. تظهر اقتراحات الإكمال التلقائي تلقائيًا عند كتابة نقطة بعد كائن عام أو تعداد أو استدعاء طريقة تعرض فئة برمجة تطبيقات. على سبيل المثال:

  • إذا كتبت الاسم الكامل لعنصر عام أو اخترت عنصرًا من الإكمال التلقائي، ثم كتبت . (نقطة)، ستظهر لك جميع الطرق والقيم الثابتة لتلك الفئة.
  • إذا كتبت بضعة أحرف، ستظهر لك جميع الاقتراحات الصالحة التي تبدأ بهذه الأحرف.

الكائنات العامة

تقدّم كل خدمة عنصرًا واحدًا على الأقل على مستوى العالم (المستوى الأعلى)، على سبيل المثال، يمكن الوصول إلى خدمة Gmail فقط من خلال العنصر GmailApp. تقدّم بعض الخدمات عدة عناصر عامة، على سبيل المثال، تتضمّن الخدمة الأساسية أربعة عناصر عامة: Browser وLogger وMimeType وSession.

الطُرق

تتضمّن العناصر العامة لجميع الخدمات المتقدّمة أو المضمّنة تقريبًا طرقًا تعرض البيانات أو فئة من فئات "برمجة تطبيقات Google". تجري النصوص البرمجية عمليات استدعاء الطُرق بالتنسيق التالي:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

على سبيل المثال، يمكن للبرنامج النصي إرسال رسالة إلكترونية من خلال استدعاء طريقة sendEmail(recipient, subject, body) الخاصة بخدمة Gmail على النحو التالي:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

إذا كانت إحدى الطرق تعرض فئة أخرى من فئات برمجة تطبيقات، يمكنك ربط طلبات الطرق في سطر واحد. (تظهر أنواع الإرجاع في كل من الإكمال التلقائي وفي مستندات مرجع الطريقة). على سبيل المثال، تعرض الطريقة 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 لإنشاء هذه الفئات، كما تفعل مع فئات JavaScript العادية مثل Date. للوصول إلى فئة فرعية، يجب استدعاء طريقة تعرضها. إذا لم تكن متأكدًا من كيفية الوصول إلى فئة معيّنة، انتقِل إلى صفحة الجذر الخاصة بالمستندات المرجعية للخدمة، فهي تتضمّن قائمة بالفئات الخاصة بالخدمة والطُرق التي تعرضها.

واجهات

تتضمّن بعض الخدمات فئات مصنّفة على أنّها "واجهات" في مستندات المرجع. هذه فئات عامة تُستخدَم كأنواع إرجاع للطُرق التي لا يمكنها تحديد النوع الدقيق مسبقًا. على سبيل المثال، يعرض الإجراء Document service Body.getChild(childIndex) عنصر Element عام. تمثّل واجهة Element فئة أخرى، ربما Paragraph أو Table. ونادرًا ما تكون عناصر الواجهة مفيدة بمفردها، بل يجب استدعاء طريقة مثل Element.asParagraph() لتحويل العنصر مرة أخرى إلى فئة معيّنة.

عمليات التعداد

تتضمّن معظم الخدمات تعدادات (أنواع تعدادية) للقيم المُسمّاة. على سبيل المثال، تستخدم خدمة Google Drive القيمتين Access وPermission لتحديد المستخدمين الذين يمكنهم الوصول إلى ملف أو مجلد. في معظم الحالات، يمكنك الوصول إلى هذه القيم الثابتة من الكائن العام، كما هو موضّح في المثال التالي:

// 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);