Backup before removing hiddify references
This commit is contained in:
161
TELEGRAM_BOT_SETUP.md
Normal file
161
TELEGRAM_BOT_SETUP.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# 🤖 Настройка 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 строк
|
||||
|
||||
---
|
||||
|
||||
**Готово!** Теперь пользователи смогут отправлять анонимные логи, а вы - исправлять баги быстрее! 🚀
|
||||
Reference in New Issue
Block a user