Files
umbrix/TELEGRAM_BOT_SETUP.md
2026-01-15 12:28:40 +03:00

5.6 KiB
Raw Blame History

🤖 Настройка 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 ответе:

    "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

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  // НЕТ!

ПРАВИЛЬНО:

  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 строк

Готово! Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀