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

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

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

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

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

اجرای یک تابع

درخواست scripts.run زیر یک تابع Apps Script به نام listFolderContent را فراخوانی می‌کند و folderId Google Drive و یک عدد صحیح 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
        }]
      }]
    }
  }
}