Files
MessageGateway/docs/bots.md
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

92 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Настройка ботов
## Создание бота в Telegram
1. **Создание бота через BotFather:**
- Откройте Telegram и найдите бота [@BotFather](https://t.me/BotFather)
- Отправьте команду `/newbot`
- Следуйте инструкциям BotFather:
- Введите имя бота (например, "My Monitoring Bot")
- Введите username бота (должен заканчиваться на `bot`, например, "my_monitoring_bot")
- BotFather предоставит вам **токен бота** (например, `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`)
2. **Настройка бота:**
- Сохраните токен бота в переменную окружения `TELEGRAM_BOT_TOKEN`
- Добавьте бота в группу Telegram, куда нужно отправлять сообщения
- Сделайте бота администратором группы (опционально, но рекомендуется для полной функциональности)
3. **Получение Chat ID группы:**
- Добавьте бота [@userinfobot](https://t.me/userinfobot) в группу
- Отправьте любое сообщение в группе
- @userinfobot покажет Chat ID группы (например, `-1001234567890`)
- Сохраните Chat ID в конфигурацию групп (`config/groups.json`)
4. **Получение Thread ID (для тредов):**
- Создайте тред в группе Telegram
- Используйте бота [@userinfobot](https://t.me/userinfobot) или API Telegram для получения Thread ID
- Thread ID можно получить через API Telegram: `getUpdates` или `getChat`
**Пример конфигурации для Telegram:**
```json
{
"monitoring": {
"messenger": "telegram",
"chat_id": -1001234567890,
"thread_id": 0,
"config": {}
}
}
```
## Создание бота в MAX/VK
1. **Создание приложения в VK:**
- Перейдите на [VK Developers](https://dev.vk.com/)
- Создайте новое приложение:
- Нажмите "Создать приложение"
- Выберите тип приложения: "Веб-сайт" или "Standalone"
- Введите название приложения
- Подтвердите создание
2. **Получение Access Token:**
- В настройках приложения найдите раздел "Токены"
- Создайте новый токен:
- Выберите права доступа (scope):
- `messages` - для отправки сообщений
- `photos` - для отправки фотографий
- `docs` - для отправки документов
- Скопируйте полученный токен
- Сохраните токен в переменную окружения `MAX_ACCESS_TOKEN`
3. **Получение Peer ID (ID чата):**
- Peer ID можно получить через API VK: `messages.getConversations`
- Для группы: Peer ID = `2000000000 + group_id`
- Для беседы: Peer ID можно получить через `messages.getChat`
4. **Настройка приложения:**
- Установите переменные окружения:
- `MAX_ACCESS_TOKEN` - токен доступа
- `MAX_API_VERSION` - версия API (по умолчанию `5.131`)
- `MAX_ENABLED=true` - включить поддержку MAX/VK
**Пример конфигурации для MAX/VK:**
```json
{
"max_alerts": {
"messenger": "max",
"chat_id": "123456789",
"thread_id": null,
"config": {
"access_token": "your_access_token_here",
"api_version": "5.131"
}
}
}
```
**Примечания:**
- MAX/VK не поддерживает треды (thread_id всегда `null`)
- Peer ID может быть как числом, так и строкой
- Для работы с группами VK требуется, чтобы бот был добавлен в группу и имел права администратора