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

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

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

ميزات JavaScript الحديثة

تتوافق "برمجة تطبيقات Google" مع وقتَي تشغيل JavaScript: وقت تشغيل V8 الحديث وآخر أقدم يعتمد على مترجم Rhino JavaScript من Mozilla.

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

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

استخدام الإكمال التلقائي

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

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

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

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

طُرق الاتصال

تشمل العناصر العامة لجميع الخدمات المدمجة أو المتقدمة تقريبًا طرق عرض البيانات أو فئة لبرمجة التطبيقات. تجري النصوص البرمجية استدعاءات الطرق بهذا التنسيق:

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.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

الوصول إلى صفوف الأطفال

تتضمن كل خدمة فئة فرعية واحدة أو أكثر لا يمكن الوصول إليها من المستوى الأعلى ككائن عام. لا يمكنك استخدام الكلمة الرئيسية new لإنشاء هذه الفئات، كما هو الحال مع فئات JavaScript العادية مثل 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);