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

162 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 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 строк
---
**Готово!** Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀