اجرای توابع اسکریپت برنامه ها

API اسکریپت برنامه‌ها (و قبلاً API اجرای اسکریپت برنامه‌ها) به شما امکان می‌دهد از راه دور یک تابع را در یک پروژه اسکریپت که به آن دسترسی دارید، اجرا کنید. برنامه شما می‌تواند یک تابع اسکریپت برنامه‌ها را فراخوانی کند، در صورت نیاز پارامترهای ورودی را به آن ارائه دهد و پاسخی را دریافت کند.

مثال‌های این صفحه نشان می‌دهند که چگونه می‌توان برخی از عملیات اجرایی رایج را با API انجام داد. برای اطلاعات بیشتر، از جمله الزامات مجوز ویژه ، به راهنمای اجرای یک تابع مراجعه کنید.

در این مثال‌ها، از متغیر scriptId برای مشخص کردن محل قرار دادن شناسه پروژه اسکریپت استفاده می‌شود. برای یافتن شناسه اسکریپت، مراحل زیر را دنبال کنید:

  1. در پروژه Apps Script، در بالا سمت چپ، روی پروژه (Project Settings settings) کلیک کنید.
  2. در کنار «شناسه اسکریپت»، روی «کپی » کلیک کنید.

اجرای یک تابع

درخواست scripts.run زیر یک تابع Apps Script به نام listFolderContent را فراخوانی می‌کند و Drive folderId و یک عدد صحیح MAX_SIZE به عنوان آرگومان به آن ارسال می‌کند. این تابع در حالت توسعه اجرا می‌شود، به این معنی که جدیدترین نسخه ذخیره شده تابع، صرف نظر از اینکه چه نسخه‌ای به عنوان یک فایل اجرایی مستقر شده است، اجرا می‌شود.

پروتکل درخواست در زیر نشان داده شده است. راهنمای توابع اجرایی نحوه پیاده‌سازی یک درخواست اجرا را در زبان‌های مختلف با استفاده از کتابخانه‌های کلاینت 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
        }]
      }]
    }
  }
}