# 🤖 Настройка Telegram Bot для логов Umbrix ## 📝 Пошаговая инструкция ### 1️⃣ Создайте бота 1. Откройте **Telegram** 2. Найдите бота **@BotFather** 3. Отправьте команду: `/newbot` 4. Придумайте **имя** для бота (например: `Umbrix Logs Bot`) 5. Придумайте **username** (например: `umbrix_logs_bot`) 6. Скопируйте полученный **токен** (выглядит как `1234567890:ABCdefGHIjklMNOpqrsTUVwxyz`) ### 2️⃣ Настройте приватность 1. Отправьте @BotFather команду: `/mybots` 2. Выберите своего бота 3. Нажмите `Bot Settings` 4. Нажмите `Group Privacy` 5. Нажмите `Turn OFF` (чтобы бот мог читать сообщения в группах) ### 3️⃣ Создайте канал/группу для логов **Вариант A: Приватный канал (РЕКОМЕНДУЮ)** 1. Создайте новый канал в Telegram 2. Назовите его (например, "Umbrix Logs") 3. Сделайте канал **приватным** 4. Добавьте бота в администраторы канала **Вариант B: Приватная группа** 1. Создайте новую группу 2. Добавьте бота в участники 3. Сделайте бота администратором **Вариант C: Личные сообщения** 1. Найдите своего бота в Telegram 2. Нажмите `/start` ### 4️⃣ Получите Chat ID **Способ 1: Через API (для каналов/групп)** 1. Отправьте любое сообщение в канал/группу 2. Откройте в браузере: ``` https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates ``` Замените `<ВАШ_ТОКЕН>` на токен от BotFather 3. Найдите в JSON ответе: ```json "chat": { "id": -1001234567890, ← ЭТО ВАШ CHAT ID "title": "Umbrix Logs", "type": "channel" } ``` 4. Скопируйте этот ID (с минусом!) **Способ 2: Через бота (для личных сообщений)** 1. Найдите бота **@userinfobot** в Telegram 2. Отправьте ему `/start` 3. Он пришлёт ваш Chat ID ### 5️⃣ Вставьте токены в код Откройте файл: `lib/core/model/secrets.dart` ```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 с шаблоном: ```bash cp lib/core/model/secrets.dart lib/core/model/secrets.example.dart ``` В secrets.example.dart оставьте пустые строки, а secrets.dart добавьте в .gitignore. ### 7️⃣ Проверьте что работает Запустите приложение и попробуйте отправить тестовый лог через настройки. Если логи не приходят, проверьте: - ✅ Токен правильный (скопирован полностью) - ✅ Chat ID правильный (с минусом для каналов) - ✅ Бот добавлен в администраторы канала - ✅ Group Privacy выключен у бота --- ## 🔒 Безопасность ### ❌ НЕ ДЕЛАЙТЕ ТАК: ```dart // ❌ НЕ хардкодьте токен напрямую! const token = "1234567890:ABCdef..."; // ❌ НЕ коммитьте secrets.dart в Git! git add lib/core/model/secrets.dart // НЕТ! ``` ### ✅ ПРАВИЛЬНО: 1. Храните токен в `secrets.dart` 2. Добавьте `secrets.dart` в `.gitignore` 3. Создайте `secrets.example.dart` с пустыми значениями для других разработчиков 4. В 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... ``` --- ## 💡 Советы 1. **Используйте приватный канал** - логи могут содержать технические детали 2. **Настройте уведомления** - чтобы сразу видеть новые логи 3. **Создайте отдельного бота для каждого проекта** - не смешивайте логи разных приложений 4. **Ограничьте размер логов** - отправляйте только последние 50-100 строк --- **Готово!** Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀