تنفيذ دوال "برمجة تطبيقات Google"

تتيح لك واجهة برمجة التطبيقات Google Apps Script API تنفيذ دالة عن بُعد في مشروع نص برمجي يمكنك الوصول إليه. يمكن لتطبيقك استدعاء دالة برمجة تطبيقات معيّنة، وتزويدها بمعلَمات الإدخال إذا لزم الأمر، وتلقّي ردّ.

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

في هذه الأمثلة، يتم استخدام العنصر النائب scriptId للإشارة إلى المكان الذي ستوفّر فيه رقم تعريف مشروع النص البرمجي. اتّبِع الخطوات التالية للعثور على معرّف النص البرمجي:

  1. في مشروع برمجة تطبيقات، في أعلى يمين الصفحة، انقر على إعدادات المشروع .
  2. بجانب "معرّف البرنامج النصي"، انقر على نسخ.

تنفيذ وظيفة

يستدعي طلب scripts.run التالي دالة في "برمجة تطبيقات Google" باسم listFolderContent، مع تمرير folderId في Google Drive وعدد صحيح MAX_SIZE كمعلَمات. يتم تنفيذ الدالة في وضع التطوير، ما يعني أنّه يتم تنفيذ آخر نسخة محفوظة من الدالة، بغض النظر عن الإصدار الذي تم نشره كملف تنفيذي.

يظهر بروتوكول الطلب أدناه. يوضّح دليل تنفيذ الدوال البرمجية كيفية تنفيذ طلب تشغيل بلغات مختلفة باستخدام مكتبات برامج Google API.

POST https://script.googleapis.com/v1/scripts/scriptId:run
{
  "function": "listFolderContent",
  "parameters": [
    folderId,
    MAX_SIZE
  ],
  "devMode": true
}

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

{
  "response": {
    "result": [
      "fileTitle1",
      "fileTitle2",
      "fileTitle3"
    ]
  },
}

إذا واجهت الدالة خطأً أثناء تنفيذ النص البرمجي في "برمجة تطبيقات Google"، قد تبدو الاستجابة على النحو التالي:

{
  "response": {
    "error": {
      "code": 3,
      "message": "ScriptError",
      "details": [{
        "@type": "type.googleapis.com/google.apps.script.v1.ExecutionError",
        "errorMessage": "The script enountered an exeception it could not resolve.",
        "errorType": "ScriptError",
        "scriptStackTraceElements": [{
          "function": "listFolderContent",
          "lineNumber": 14
        }]
      }]
    }
  }
}