MD4 GoogleConnector Использование внешнего JSON‑источника (DataUrl)
> Медиадисплей > Интеграции > Интеграция с GoogleДата обновления: 12 июня 2026 г. Дата публикации: 10 июня 2026 г. Автор: Жапов Ананда
Назначение
Позволяет загружать данные для экрана не из Google Таблиц, а из любого внешнего HTTP‑источника (REST API, статический JSON‑файл, локальный сервер). Это удобно, когда данные формируются внешней системой (ERP, CRM, биллинг) и нет необходимости дублировать их в Google Sheets.
Как это работает?
- Вы создаёте секцию контента с типами данных
type=external. - Указываете
DataUrl– адрес, по которому отдаётся JSON. - Задаёте
Timer– интервал обновления (для службы). - Все остальные секции (таблицы, текст, диаграммы, картинки) игнорируются – данные полностью замещаются внешним JSON.
Настройка
1. Секция [ExternalSource] в INI‑файле
[ExternalSource]
enable=1
type=external
DataUrl=http://192.168.1.100:8000/display_data
Timer=30
| Параметр | Обязательный | Описание |
|---|---|---|
enable |
да | 1, true или on – включить. |
type |
да | Должен быть external. |
DataUrl |
да | Полный URL, откуда загружать JSON. |
Timer |
нет (по умолчанию 300) | Интервал обновления в секундах (для службы; в консольной утилите игнорируется). |
2. Секция [Default]
Теперь SpreadsheetId не читается. Остальные параметры (ReceiverId, CredentialsPath, ApiUrl) остаются обязательными.
[Default]
SpreadsheetId=1n29pDQYxg3_OTY3IP8tbUvo9ynnBH_ii8H8-c0T-A8U ;теперь не читает
ReceiverId=d1
CredentialsPath=credentials.json
ApiUrl=http://127.0.0.1:5206
3. Секция [SwitchCover] (опционально)
Если указана, её Cover будет добавлен в итоговый запрос (перезапишет существующий).
[SwitchCover]
Cover=Statistic
Формат внешнего JSON
Сервер, на который указывает DataUrl, должен отдавать JSON в одном из трех форматов.
✅ Новый формат (рекомендуемый) – SetCoverRequest
{
"Name": "d1",
"Cover": "Statistic",
"Data": [
{ "Name": "Title", "Text": "Заголовок", "widgetsTable": null },
{
"Name": "widgetsTable",
"widgetsTable": [ ... ]
},
{
"Name": "Widgets",
"Text": [ ... ]
}
]
}
✅ Старый формат (поддерживается)
{
"Receivers": ["d1"],
"Containers": [ ... ]
}
✅ Только данные (поддерживается)
{
"Data": [
{ "Name": "Title", "Text": "Заголовок", "widgetsTable": null },
{
"Name": "widgetsTable",
"widgetsTable": [ ... ]
},
{
"Name": "Widgets",
"Text": [ ... ]
}
]
}
Утилита автоматически преобразует старый формат в новый, подставив
Nameиз первого получателя, также сама конфигурация может подставитьNameиCoverи преобразует формат только данные в новый полноценный.
Что происходит при запуске
- Консольная утилита – однократно загружает JSON и отправляет в Медиадисплей. Завершается.
- Служба Windows – при старте загружает JSON, затем запускает таймер с интервалом
Timerи повторяет загрузку каждые N секунд. Все другие секции контента игнорируются, Google Sheets не инициализируется.
Пример полного конфигурационного файла
[Default]
SpreadsheetId=1
ReceiverId=d1
OutputFileName=Statistic_external.json
CredentialsPath=credentials.json
ApiUrl=http://127.0.0.1:5206
[SwitchCover]
;Меняет тему экрана по названию макета с сервера Медиадисплей
Cover=Statistic
[ExternalSource]
Timer=30
enable=1
type=external
DataUrl=http://192.168.1.134:5555/StatisticNoReceiver.json
Частые вопросы
❓ Как проверить, что JSON загружается правильно?
Временно добавьте в [Default] строку OutputFileName=test.json. После запуска утилиты откройте test.json – это итоговый запрос, который будет отправлен на сервер.
❓ Что делать, если JSON повреждён или сервер недоступен?
Утилита/служба выдаст ошибку с кодом:
- 4 – InvalidDataFormat (неверный JSON)
- 5 – NetworkError (сервер не отвечает)
В службе ошибка логируется, работа продолжается (по следующему таймеру будет новая попытка).
❓ Можно ли использовать DataUrl одновременно с другими секциями?
Нет. Если секция ExternalSource активна, все остальные секции контента игнорируются.
Пример для разработчиков – быстрая проверка через командную строку
MD4_GoogleConnector.exe config=Configs\statisticUrl.ini
Если в логах видите «Запуск использования внешнего JSON-файла» – значит, секция ExternalSource найдена, данные загружены.
Итог
Секция ExternalSource даёт простой и чистый способ интеграции с любым JSON‑API. Вы не зависите от Google Sheets, можете полностью контролировать формат данных и обновлять экран через внешнюю систему.