162 lines
5.6 KiB
Markdown
162 lines
5.6 KiB
Markdown
# 🤖 Настройка 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 строк
|
||
|
||
---
|
||
|
||
**Готово!** Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀
|