Skip to main content

Источник – Google Таблицы

Видео с подключением

Подготовка источника с помощью скрипта

  1. Активировать API для Google таблиц. Для этого:
    • Открыть Google Cloud Console
    • Войти под той учётной записью, под которой была создана Google таблица
    • В навигационном меню ("бургер") выбрать "APIs & Services" → "Library"
    • Найти в списке Google Sheets API, зайти внутрь, включить настройку (нажать на "Enable")
  2. Перейти в Google таблицу, к которой необходимо подключиться как к источнику. Выбрать "Настройки доступа" – "Общий доступ" – "Все, у кого есть ссылка" – "Редактор"
  3. В строке меню таблицы сверху выбрать "Расширения" – "Apps Script" и настроить расширение следующим образом:
    • Записать следующий скрипт:
      function doGet() {
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        var data = sheet.getDataRange().getValues();
        var csvData = data.map(row => row.join(",")).join("\n");
        return ContentService.createTextOutput(csvData).setMimeType(ContentService.MimeType.CSV);
      }
    • Сохранить проект (например, с помощью сочетания клавиш Ctrl + S)
    • Попытаться "Выполнить" нажатием на соответствующую кнопку на верхней панели. При этом может потребоваться повторно войти в Вашу учётную запись – необходимо сделать это. В случае ошибки подключения необходимо закрыть окно входа и попытаться выполнить скрипт повторно
    • После успешного выполнения скрипта нажать на кнопку "Начать развёртывание" → "Новое развёртывание". в развёртывании выбрать тип (нажатием на "шестеренку" слева сверху) – "Веб-приложение". В настройках конфигурации указать:
      • "Запуск от имени" – "От моего имени"
      • "У кого есть доступ" – "Все"
      • Нажать на кнопку "Начать развёртывание"
    • После создания развёртывания в секции "Веб-приложение" будет доступен URL – именно он понадобится в создании подключения. Повторно получить этот URL можно всё в том же скрипте "Apps Script" для подключаемой таблицы с помощью "Начать развёртывание" → "Управление развёртываниями"

ДОПОЛНИТЕЛЬНО. К Google таблице можно подключиться и без использования Apps Script. В таком случае выходной массив данных формируется построчно, причём каждая строка выступает отдельным массивом и отобразится в источнике в Fastboard как отдельная таблица. При подключении без скрипта понадобятся ID таблицы-источника и API-ключ: 

  • ID таблицы можно извлечь из адресной строки самой таблицы – он расположен между d/ и /edit
  • API-ключ можно получить в Google Cloud Console. Для этого необходимо:
    • В навигационном меню выбрать APIs & Services → Credentials
    • Нажать на кнопку "Create credentials", выбрать "API key"
    • После создания ключа нажать на него в таблице ниже, откроется окно для редактирования. В этом окне необходимо в секции "API restrictions" выбрать "Restrict key", найти и выбрать в раскрывающемся списке Google Sheets API
    • Вернуться на шаг назад, нажать на кнопку "Show key" для вашего ключа, скопировать ключ

Подключение к источнику через API (Postman, Swagger)

После подготовки источника необходимо настроить подключение через API. Выполнить подключение можно как через Postman, так и через Swagger. Потребуется выполнить 2 запроса – для авторизации на Fastboard и настройки подключения к Google таблице:

  1. POST-запрос на авторизацию – https://СТЕНД_FASTBOARD/api/auth/get_token:
    • При подключении через Postman в теле запроса (body) необходимо выбрать тип "row" и из раскрывающего списка "json". Написать скрипт:
      {
        "login": "Ваш логин на стенде",
        "password": "Ваш пароль на стенде"
      }

      Запустить скрипт с помощью кнопки "Send"

  2. POST-запрос на подключение – https://СТЕНД_FASTBOARD/api/v2/source:
    • При подключении через Postman в теле запроса (body) необходимо выбрать тип "row" и из раскрывающего списка "json". Написать скрипт:
      {
        "name": "Название подключения, которое будет отображаться в модели данных",
        "driver": "rest-api",
        "credentials": {
          "url": "Ссылка из развёртывания из шага 3",
          "method": {
            "value": "GET"
          },
          "format": {
            "value": "csv", //формат файла, в скрипте установили csv
            "noHeaders": false  //использовать первую строку как заголовок (false, чтобы использовать)
          }
        },
        "isAutoUpdate": false //требуется ли автообновление (false, если не требуется)
      }

      Запустить скрипт с помощью кнопки "Send"

После успешного отправления POST-запросов в поле ответа "Response" должен отобразиться код ответа "201" – источник успешно создан.

Найти источник можно в диспетчере данных любого проекта на указанном в запросах стенде (название соответствует "name" из скрипта). В источнике будут содержаться две таблицы – "main" (системная) и "data" (данные с листа). Помимо самих данных в таблице "data" будут присутствовать два системных столбца, содержащие ID каждой строки и ID из таблицы "main".

ДОПОЛНИТЕЛЬНО. При подключении к таблице без Apps Script в POST-запросе на подключение необходимо указать следующий скрипт:

{
  "name": "Название подключения, которое будет отображаться в модели данных",
  "driver": "rest-api",
  "credentials": {
    "url": "https://sheets.googleapis.com/v4/spreadsheets/ID_ТАБЛИЦЫ_ИСТОЧНИКА/values/Sheet1!A1:C11?key=API_КЛЮЧ_ИЗ_КОНСОЛИ",
    "method": {
      "value": "GET"
    },
    "format": {
      "value": "json" //передаваемый формат – json
    }
  },
  "isAutoUpdate": false //требуется ли автообновление (false, если не требуется)
}

В источнике на стенде будет указано столько таблиц, сколько было строк в Google таблице, + системные таблицы.