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

راه اندازی یک پروژه Apps Script برای فراخوانی مستقیم Google Forms 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. با استفاده از همان شناسه Google که پروژه GCP خود را با آن پیکربندی کرده‌اید، به داشبورد Apps Script بروید، سپس پروژه جدید را کلیک کنید.
  2. پس از باز شدن پروژه، روی تنظیمات پروژه کلیک کنید.
  3. کادر بررسی نمایش فایل مانیفست "appsscript.json" در ویرایشگر را انتخاب کنید.
  4. در بخش پروژه Google Cloud Platform (GCP) روی تغییر پروژه کلیک کنید و شماره پروژه GCP را که برای Forms API پیکربندی کرده‌اید وارد کنید.

پروژه Apps Script شما اکنون برای دسترسی به Google Forms 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 با Google Forms 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!');
      var formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     var OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     var formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     var options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    var response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. مقداری را که قبلاً ذکر کردید جایگزین YOUR_FORM_ID کنید.

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

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

کد را تست کنید

  1. روی Run کلیک کنید.
  2. پروژه را در صورت نیاز با استفاده از همان Google ID قبلی تأیید کنید.

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

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 آزمایش کنید.