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

توفّر "برمجة تطبيقات Google" أكثر من 30 خدمة مدمجة للتفاعل مع بيانات المستخدمين وأنظمة Google الأخرى والأنظمة الخارجية. يتم تقديم هذه الخدمات ككائنات عامة تشبه كائن Math القياسي في JavaScript. على سبيل المثال، مثلما يوفّر Math طُرقًا مثل random() والقيم الثابتة مثل PI، تقدّم خدمة جدول البيانات في "برمجة التطبيقات" طرقًا مثل 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 وغير ذلك، بالإضافة إلى Math وObject الكائنات العامة.

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

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

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

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

وتوفّر كل خدمة عنصرًا عالميًا واحدًا على الأقل (المستوى الأعلى)، على سبيل المثال، يتم الوصول إلى خدمة 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);