تنفيذ وظائف برمجة التطبيقات

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

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

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

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

تنفيذ وظيفة

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

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

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

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

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

إذا واجهت الدالة خطأ أثناء تنفيذ Apps Script، قد يشبه الردّ ما يلي:

{
  "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
        }]
      }]
    }
  }
}