Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Mattermost

Подключение PRX к Mattermost через REST API v4 для обмена сообщениями в этой самохостинговой альтернативе Slack с открытым исходным кодом.

Предварительные требования

  • Сервер Mattermost (самохостинг или облако)
  • Бот-аккаунт, созданный в Mattermost с персональным токеном доступа
  • Бот приглашён в каналы, где он должен работать

Быстрая настройка

1. Создание бот-аккаунта

  1. Перейдите в System Console > Integrations > Bot Accounts и включите бот-аккаунты
  2. Перейдите в Integrations > Bot Accounts > Add Bot Account
  3. Задайте имя пользователя, отображаемое имя и роль
  4. Скопируйте сгенерированный токен доступа

Альтернативно можно создать обычный пользовательский аккаунт и сгенерировать персональный токен доступа в Профиль > Безопасность > Персональные токены доступа.

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

Справочник конфигурации

ПолеТипПо умолчаниюОписание
urlStringобязательныйURL сервера Mattermost (например, "https://mattermost.example.com")
bot_tokenStringобязательныйТокен доступа бота или персональный токен доступа
channel_idStringnullОпциональный ID канала для ограничения бота одним каналом
allowed_users[String][]Разрешённые ID пользователей Mattermost. Пусто = запрещено всем. "*" = разрешить всем
thread_repliesbooltrueПри true ответы создаются в треде исходного сообщения. При false ответы отправляются в корень канала
mention_onlyboolfalseПри 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

Released under the Apache-2.0 License.