Skip to content

Конфигурация - Bots ​

Конфигурация ботов лежит в отдельном JSON-файле: сервер грузит bots.<mode>.json по GIN_MODE (например bots.debug.json, bots.release.json), с откатом на bots.json. Образец — config/bots.example.json.

Секция bots - массив объектов провайдеров. На текущий момент поддерживается тип tg (Telegram).
Схема: infrastructure/config/schemas/bots.schema.json.

Поля элемента bots[]:

  • enabled: boolean - включить провайдера
  • type: "tg"
  • api_type: integer - внутренний api_type; должен совпадать с платформой в основном конфиге
  • webhook_url: string - полный URL, на который платформа шлёт вебхуки (напр. /ext/<api_type>/tg/webhook)
  • name: map<locale, string> - локализованное имя бота
  • short_description: map<locale, string> - короткое описание
  • description: map<locale, string> - полное описание
  • menu_button:
    • text: map<locale, string>
    • type: "webapp_url" | "url"
    • url: string
  • commands: array - набор команд
    • enabled: boolean
    • command: string - основное имя команды
    • alias: string[] - альтернативные имена
    • description: map<locale, string> - описание команды
    • messages: array - сообщения, отправляемые при выполнении
      • type: "text" | "photo"
      • photo_url: string (для type="photo")
      • text: map<locale, string> (для type="text")
      • link_preview_disabled: boolean
      • disable_notification: boolean
      • buttons_location: "inline" | "keyboard"
      • buttons: [][]Button - матрица кнопок для inline/keyboard
        • Button:
          • text: map<locale, string>
          • type: "url" | "webapp_url"
          • url: string

Пример:

json
{
  "bots": [
    {
      "type": "tg",
      "enabled": true,
      "api_type": 31,
      "webhook_url": "https://example.com/ext/31/tg/webhook",
      "name": { "en": "MARV Bot", "ru": "MARV Бот" },
      "short_description": { "ru": "Короткое описание" },
      "description": { "ru": "Полное описание" },
      "menu_button": {
        "text": { "ru": "Открыть" },
        "type": "webapp_url",
        "url": "https://example.bot/app"
      },
      "commands": [
        {
          "enabled": true,
          "command": "start",
          "description": { "ru": "Начало работы" },
          "messages": [
            {
              "type": "text",
              "text": { "ru": "Добро пожаловать!" },
              "buttons_location": "inline",
              "buttons": [
                [
                  { "text": { "ru": "Открыть сайт" }, "type": "url", "url": "https://example.com" }
                ]
              ]
            }
          ]
        }
      ]
    }
  ]
}

Полная JSON Schema расположена в infrastructure/config/schemas/bots.schema.json.