Настройка проекта скрипта приложений

Настроить проект Apps Script для вызова API Google Forms напрямую через вызов REST очень просто. Предполагая, что вы уже настроили проект Google Cloud, выполните следующие действия:

  1. Создайте новый проект Apps Script.
  2. Измените связанный номер проекта Google Cloud, чтобы он соответствовал проекту, который вы включили для API Google Forms.
  3. Отредактируйте файл манифеста ( appsscript.json ), чтобы добавить необходимые области OAuth.
  4. Добавьте код сценария приложений для получения токена OAuth и выполнения вызова REST с использованием этого токена.

Вот краткое описание этих шагов.

Создайте и настройте новый проект Apps Script.

  1. Используя тот же идентификатор Google, который вы использовали для настройки проекта GCP, перейдите на панель управления скриптами приложений и нажмите «Новый проект» .
  2. Как только ваш проект откроется, нажмите Настройки проекта.
  3. Установите флажок Показывать файл манифеста «appsscript.json» в редакторе .
  4. В разделе «Проект Google Cloud Platform (GCP)» нажмите «Изменить проект» и введите номер проекта GCP, который вы настроили для Forms API.

Теперь ваш проект Apps Script настроен для доступа к API Google Forms. Следующим необходимым шагом является добавление соответствующих областей 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. Нажмите проект» и при необходимости исправьте синтаксические ошибки. Теперь ваш проект должен иметь возможность вызывать API Google Forms через вызов REST.

Добавьте код Apps Script для вызова API.

Прежде чем писать код для вызова формы, вам необходимо определить принадлежащую вам форму, на которую есть ответы, и записать ее идентификатор формы. Идентификатор формы можно найти в URL-адресе при редактировании формы:

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

Для вызова API вы будете использовать вызов UrlFetchApp Apps Script.

  1. Откройте Code.gs и добавьте следующий код:

    формы-api/snippets/retrive_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. Нажмите Выполнить .
  2. Авторизуйте проект по мере необходимости, используя тот же идентификатор Google, что и раньше.

После запуска вы должны увидеть ответ в журнале выполнения , подобный этому:

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.