Источник – Google Таблицы
Подготовка источника с помощью скрипта
- Активировать API для Google таблиц. Для этого:
- Открыть Google Cloud Console
- Войти под той учётной записью, под которой была создана Google таблица
- В навигационном меню ("бургер") выбрать "APIs & Services" → "Library"
- Найти в списке Google Sheets API, зайти внутрь, включить настройку (нажать на "Enable")
- Перейти в Google таблицу, к которой необходимо подключиться как к источнику. Выбрать "Настройки доступа" – "Общий доступ" – "Все, у кого есть ссылка" – "Редактор"
- В строке меню таблицы сверху выбрать "Расширения" – "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 таблице:
- POST-запрос на авторизацию – https://СТЕНД_FASTBOARD/api/auth/get_token:
- При подключении через Postman в теле запроса (body) необходимо выбрать тип "row" и из раскрывающего списка "json". Написать скрипт:
{ "login": "Ваш логин на стенде", "password": "Ваш пароль на стенде" }
Запустить скрипт с помощью кнопки "Send"
- При подключении через Postman в теле запроса (body) необходимо выбрать тип "row" и из раскрывающего списка "json". Написать скрипт:
- 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"
- При подключении через Postman в теле запроса (body) необходимо выбрать тип "row" и из раскрывающего списка "json". Написать скрипт:
После успешного отправления 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 таблице, + системные таблицы.