5.6 KiB
🤖 Настройка Telegram Bot для логов Umbrix
📝 Пошаговая инструкция
1️⃣ Создайте бота
- Откройте Telegram
- Найдите бота @BotFather
- Отправьте команду:
/newbot - Придумайте имя для бота (например:
Umbrix Logs Bot) - Придумайте username (например:
umbrix_logs_bot) - Скопируйте полученный токен (выглядит как
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz)
2️⃣ Настройте приватность
- Отправьте @BotFather команду:
/mybots - Выберите своего бота
- Нажмите
Bot Settings - Нажмите
Group Privacy - Нажмите
Turn OFF(чтобы бот мог читать сообщения в группах)
3️⃣ Создайте канал/группу для логов
Вариант A: Приватный канал (РЕКОМЕНДУЮ)
- Создайте новый канал в Telegram
- Назовите его (например, "Umbrix Logs")
- Сделайте канал приватным
- Добавьте бота в администраторы канала
Вариант B: Приватная группа
- Создайте новую группу
- Добавьте бота в участники
- Сделайте бота администратором
Вариант C: Личные сообщения
- Найдите своего бота в Telegram
- Нажмите
/start
4️⃣ Получите Chat ID
Способ 1: Через API (для каналов/групп)
-
Отправьте любое сообщение в канал/группу
-
Откройте в браузере:
https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdatesЗамените
<ВАШ_ТОКЕН>на токен от BotFather -
Найдите в JSON ответе:
"chat": { "id": -1001234567890, ← ЭТО ВАШ CHAT ID "title": "Umbrix Logs", "type": "channel" } -
Скопируйте этот ID (с минусом!)
Способ 2: Через бота (для личных сообщений)
- Найдите бота @userinfobot в Telegram
- Отправьте ему
/start - Он пришлёт ваш Chat ID
5️⃣ Вставьте токены в код
Откройте файл: lib/core/model/secrets.dart
abstract class Secrets {
static const String telegramBotToken = "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"; // ← ВАШ ТОКЕН
static const String telegramChatId = "-1001234567890"; // ← ВАШ CHAT ID
static bool get isConfigured =>
telegramBotToken.isNotEmpty && telegramChatId.isNotEmpty;
}
6️⃣ Добавьте в .gitignore
ОБЯЗАТЕЛЬНО! Чтобы токен не попал в GitHub:
Откройте файл: .gitignore
Добавьте строку:
lib/core/model/secrets.dart
Или создайте secrets.dart с шаблоном:
cp lib/core/model/secrets.dart lib/core/model/secrets.example.dart
В secrets.example.dart оставьте пустые строки, а secrets.dart добавьте в .gitignore.
7️⃣ Проверьте что работает
Запустите приложение и попробуйте отправить тестовый лог через настройки.
Если логи не приходят, проверьте:
- ✅ Токен правильный (скопирован полностью)
- ✅ Chat ID правильный (с минусом для каналов)
- ✅ Бот добавлен в администраторы канала
- ✅ Group Privacy выключен у бота
🔒 Безопасность
❌ НЕ ДЕЛАЙТЕ ТАК:
// ❌ НЕ хардкодьте токен напрямую!
const token = "1234567890:ABCdef...";
// ❌ НЕ коммитьте secrets.dart в Git!
git add lib/core/model/secrets.dart // НЕТ!
✅ ПРАВИЛЬНО:
- Храните токен в
secrets.dart - Добавьте
secrets.dartв.gitignore - Создайте
secrets.example.dartс пустыми значениями для других разработчиков - В production сборке: используйте environment variables
📤 Формат логов
Бот будет отправлять сообщения в таком формате:
🐛 Отчёт об ошибке Umbrix
📱 Версия: 2.5.7
🤖 Android: 13 (API 33)
📦 Device: Samsung Galaxy S21
🆔 ID: a3f5c8d1 (анонимный)
📋 Логи:
[ERROR] Connection timeout
[WARN] Retry attempt 3/5
[INFO] Connecting to server...
💡 Советы
- Используйте приватный канал - логи могут содержать технические детали
- Настройте уведомления - чтобы сразу видеть новые логи
- Создайте отдельного бота для каждого проекта - не смешивайте логи разных приложений
- Ограничьте размер логов - отправляйте только последние 50-100 строк
Готово! Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀