یک پروژه Apps Script راه اندازی کنید

راه‌اندازی یک پروژه Apps Script برای فراخوانی مستقیم API فرم‌های گوگل از طریق فراخوانی REST ساده است. با فرض اینکه قبلاً یک پروژه Google Cloud را پیکربندی کرده‌اید، موارد زیر را انجام دهید:

  1. یک پروژه جدید Apps Script ایجاد کنید.
  2. شماره پروژه مرتبط با Google Cloud را تغییر دهید تا با پروژه‌ای که برای Google Forms API فعال کرده‌اید، مطابقت داشته باشد.
  3. فایل Manifest ( appsscript.json ) را ویرایش کنید تا محدوده‌های OAuth لازم را اضافه کنید.
  4. کد Apps Script را برای دریافت توکن OAuth و برقراری یک فراخوانی REST با استفاده از توکن، اضافه کنید.

در اینجا یک مرور سریع از این مراحل آورده شده است.

ایجاد و پیکربندی یک پروژه جدید Apps Script

  1. با استفاده از همان شناسه گوگلی که پروژه GCP خود را با آن پیکربندی کرده‌اید، به داشبورد Apps Script بروید، سپس روی New project کلیک کنید.
  2. وقتی پروژه شما باز شد، روی پروژه کلیک کنید.
  3. کادر انتخاب نمایش فایل مانیفست "appsscript.json" در ویرایشگر را علامت بزنید .
  4. در بخش پروژه پلتفرم ابری گوگل (GCP) ، روی تغییر پروژه کلیک کنید و شماره پروژه GCP که برای Forms API پیکربندی کرده‌اید را وارد کنید.

پروژه Apps Script شما اکنون برای دسترسی به API فرم‌های گوگل پیکربندی شده است. مرحله بعدی، افزودن محدوده‌های OAuth مناسب است.

افزودن دامنه‌های OAuth

برای تولید یک توکن OAuth با دامنه‌ی مناسب در Apps Script، باید دامنه‌های مورد نیاز را در فایل مانیفست پروژه تنظیم کنید.

  1. در ویرایشگر، appsscript.json را باز کنید.
  2. محدوده‌ها را به بدنه مانیفست اضافه کنید.

    {
      ...
    "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request",
        "https://www.googleapis.com/auth/drive",
        "https://www.googleapis.com/auth/drive.readonly",
        "https://www.googleapis.com/auth/forms.body",
        "https://www.googleapis.com/auth/forms.body.readonly",
        "https://www.googleapis.com/auth/forms.responses.readonly"
      ],
     ...
     }
    
  3. روی کلیک کنید. پروژه را ذخیره کنید و در صورت لزوم خطاهای نحوی را اصلاح کنید. اکنون پروژه شما باید بتواند از طریق فراخوانی REST، API فرم‌های گوگل را فراخوانی کند.

کد Apps Script را برای فراخوانی API اضافه کنید

قبل از نوشتن کد برای فراخوانی یک فرم، باید فرمی را که متعلق به شماست و دارای پاسخ است شناسایی کنید و شناسه فرم آن را یادداشت کنید. شناسه فرم را می‌توانید هنگام ویرایش فرم در URL پیدا کنید:

https://docs.google.com/forms/d/<FORM_ID>/edit

برای فراخوانی API، از فراخوانی Apps Script UrlFetchApp استفاده خواهید کرد.

  1. Code.gs را باز کنید و کد زیر را اضافه کنید:

    forms-api/snippets/retrieve_all_responses.gs
    function callFormsAPI() {
      console.log("Calling the Forms API!");
      const formId = "<YOUR_FORM_ID>";
    
      // Get OAuth Token
      const OAuthToken = ScriptApp.getOAuthToken();
      console.log(`OAuth token is: ${OAuthToken}`);
    
      const formsAPIUrl = `https://forms.googleapis.com/v1/forms/${formId}/responses`;
      console.log(`formsAPIUrl is: ${formsAPIUrl}`);
    
      const options = {
        headers: {
          Authorization: `Bearer ${OAuthToken}`,
          Accept: "application/json",
        },
        method: "get",
      };
    
      const response = UrlFetchApp.fetch(formsAPIUrl, options);
      console.log(`Response from forms.responses was: ${response}`);
    }
  2. YOUR_FORM_ID را با مقداری که قبلاً یادداشت کرده‌اید جایگزین کنید.

    مثال: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. روی کلیک کنید. پروژه را ذخیره کنید و در صورت لزوم خطاهای نحوی را اصلاح کنید.

کد را تست کنید

  1. روی کلیک کنید. اجرا کنید .
  2. در صورت نیاز، با استفاده از همان شناسه گوگل قبلی، پروژه را تأیید کنید.

پس از شروع، باید پاسخی مشابه این را در گزارش اجرا مشاهده کنید:

Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
    {
      "responseId":"...",
      "createTime": "2021-03-25T01:23:58.146Z",
      "lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
      "answers": {
        "1e9b0ead": {
          "questionId": "1e9b0ead",
          "textAnswers": {
            "answers": [
              {
                "value": "Red"
              }
            ]
          }
        },
        "773ed8f3": {
          "questionId": "773ed8f3",
          "textAnswers": {
            "answers": [
              {
                "value": "Tesla"
              }
            ]
          }
        }
      }
    }
  ]
}
Execution completed

مراحل بعدی

پس از اینکه API را با Apps Script با موفقیت فراخوانی کردید، به مستندات مرجع مراجعه کنید و فراخوانی‌های دیگر API را آزمایش کنید.