Mattermost
Подключение PRX к Mattermost через REST API v4 для обмена сообщениями в этой самохостинговой альтернативе Slack с открытым исходным кодом.
Предварительные требования
- Сервер Mattermost (самохостинг или облако)
- Бот-аккаунт, созданный в Mattermost с персональным токеном доступа
- Бот приглашён в каналы, где он должен работать
Быстрая настройка
1. Создание бот-аккаунта
- Перейдите в System Console > Integrations > Bot Accounts и включите бот-аккаунты
- Перейдите в Integrations > Bot Accounts > Add Bot Account
- Задайте имя пользователя, отображаемое имя и роль
- Скопируйте сгенерированный токен доступа
Альтернативно можно создать обычный пользовательский аккаунт и сгенерировать персональный токен доступа в Профиль > Безопасность > Персональные токены доступа.
2. Конфигурация
toml
[channels_config.mattermost]
url = "https://mattermost.example.com"
bot_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
channel_id = "abc123def456ghi789"
allowed_users = ["user123456"]3. Проверка
bash
prx channel doctor mattermostСправочник конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
url | String | обязательный | URL сервера Mattermost (например, "https://mattermost.example.com") |
bot_token | String | обязательный | Токен доступа бота или персональный токен доступа |
channel_id | String | null | Опциональный ID канала для ограничения бота одним каналом |
allowed_users | [String] | [] | Разрешённые ID пользователей Mattermost. Пусто = запрещено всем. "*" = разрешить всем |
thread_replies | bool | true | При true ответы создаются в треде исходного сообщения. При false ответы отправляются в корень канала |
mention_only | bool | false | При true отвечать только на сообщения с @-упоминанием бота |
Возможности
- REST API v4 — использует стандартный API Mattermost для отправки и получения сообщений
- Ответы в тредах — автоматические ответы внутри исходного треда
- Индикаторы набора текста — отображение статуса набора текста во время генерации ответов
- Подходит для самохостинга — работает с любым развёртыванием Mattermost без внешних зависимостей
- Ограничение по каналу — опциональное ограничение бота одним каналом через
channel_id - Фильтрация по упоминаниям — ответ только на @-упоминания в загруженных каналах
Ограничения
- Использует опрос вместо WebSocket для доставки сообщений, что вносит небольшую задержку
- Бот должен быть участником канала для чтения и отправки сообщений
- Бот-аккаунты требуют включения системным администратором в System Console Mattermost
- Обработка файловых вложений в настоящее время не поддерживается
- Завершающие слеши в URL автоматически удаляются
Устранение неполадок
Бот не отвечает
- Проверьте, что
urlне содержит завершающий слеш (он удаляется автоматически, но перепроверьте) - Убедитесь, что токен бота действителен:
curl -H "Authorization: Bearer <token>" https://your-mm.com/api/v4/users/me - Убедитесь, что бот добавлен в канал
Ответы отправляются не туда
- При
thread_replies = trueответы создаются в треде наroot_idисходного сообщения - Если исходное сообщение не в треде, создаётся новый тред
- Установите
thread_replies = falseдля отправки всех ответов в корень канала
Бот отвечает на всё в канале
- Установите
mention_only = trueдля ответа только на @-упоминания - Альтернативно ограничьте бота выделенным каналом через
channel_id