Backup before removing hiddify references

This commit is contained in:
Hiddify User
2026-01-15 12:28:40 +03:00
parent f54603d129
commit 36d9e31236
231 changed files with 6648 additions and 1832 deletions

187
TELEGRAM_SETUP.md Normal file
View File

@@ -0,0 +1,187 @@
# 📱 Настройка Telegram Бота для Логов
## 🎯 Цель
Пользователи смогут **добровольно** отправлять логи ошибок через Telegram, и вы будете получать их мгновенно в вашу группу/канал.
---
## 📋 Шаг 1: Создайте Telegram Бота
1. Откройте Telegram и найдите **@BotFather**
2. Отправьте команду: `/newbot`
3. Введите имя бота: **Umbrix Log Bot**
4. Введите username: **@umbrix_logs_bot** (или любой свободный)
5. **СКОПИРУЙТЕ TOKEN** который выдаст BotFather (будет примерно таким):
```
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz1234567890
```
---
## 📋 Шаг 2: Создайте Приватную Группу
1. Создайте **приватную группу** в Telegram (или канал)
2. Назовите её например: **Umbrix Logs**
3. **Добавьте бота** в эту группу:
- Нажмите на группу → Info → Add members
- Найдите вашего бота по username (@umbrix_logs_bot)
- Добавьте его
---
## 📋 Шаг 3: Получите CHAT_ID
### Вариант A: Через веб-запрос
1. Отправьте **любое сообщение** в созданную группу
2. Откройте в браузере (замените `<YOUR_TOKEN>`):
```
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
```
Пример:
```
https://api.telegram.org/bot1234567890:ABCdefGHIjkl/getUpdates
```
3. Найдите в ответе:
```json
{
"message": {
"chat": {
"id": -1001234567890, ← ЭТО ВАШ CHAT_ID
"title": "Umbrix Logs"
}
}
}
```
### Вариант B: Через бота @userinfobot
1. Добавьте **@userinfobot** в вашу группу
2. Он автоматически напишет CHAT_ID группы
---
## 📋 Шаг 4: Настройка в Коде
1. **Скопируйте файл-образец**:
```bash
cd /home/vodorod/dorod/hiddify-original-v2.5.7
cp lib/core/telegram_config.dart.example lib/core/telegram_config.dart
```
2. **Откройте** `lib/core/telegram_config.dart`
3. **Вставьте свои данные**:
```dart
class TelegramConfig {
static const String botToken = '1234567890:ABCdefGHIjklMNOpqrsTUVwxyz1234567890';
static const String chatId = '-1001234567890'; // С минусом для групп!
// Остальное не трогайте
static const String apiUrl = 'https://api.telegram.org';
static const int maxMessageLength = 4000;
}
```
4. **ВАЖНО**: Добавьте в `.gitignore`:
```bash
echo "lib/core/telegram_config.dart" >> .gitignore
```
---
## 📋 Шаг 5: Проверка
1. Соберите приложение:
```bash
flutter build apk --debug
```
2. Установите на эмулятор/телефон
3. Зайдите в **Настройки → О приложении**
4. Нажмите **"Отправить логи разработчику"**
5. Проверьте вашу Telegram группу - должно прийти сообщение! 🎉
---
## 🔐 Безопасность
### ✅ ЧТО БЕЗОПАСНО:
- Токен бота хранится в `telegram_config.dart` (не в Git)
- Группа приватная (только вы видите логи)
- Логи анонимны (нет IP, email, паролей)
### ⚠️ ЧТО ОТПРАВЛЯЕТСЯ:
- Версия приложения
- Версия Android
- Модель устройства (Samsung, Xiaomi)
- Последние 50 строк логов
- Анонимный ID (хэш от device_id)
### 🚫 ЧТО НЕ ОТПРАВЛЯЕТСЯ:
- IP адрес
- Email пользователя
- VPN конфигурация
- Серверы/ключи
- История сайтов
- Трафик
---
## 📊 Пример Сообщения в Telegram
```
🐛 Отчёт об ошибке Umbrix
📱 Версия: 1.0.0
🤖 Android: 13
📲 Устройство: Samsung SM-G991B
🆔 ID: a3f7c9d2 (анонимный)
🕐 Время: 2024-12-27 15:30:22
📋 Логи:
[ERROR] Connection failed: Timeout
[INFO] Retrying connection...
[ERROR] Failed after 3 attempts
...
```
---
## 🛠️ Альтернативы
Если Telegram не подходит, можете использовать:
1. **Email** (через SMTP или веб-сервис)
2. **GitHub Issues** (автоматически через API)
3. **Discord Webhook**
4. **Slack Webhook**
Но Telegram - самый простой и удобный вариант для начала! 👍
---
## ❓ FAQ
**Q: Бот не отвечает**
A: Проверьте что бот добавлен в группу и вы скопировали правильный токен
**Q: Не могу найти CHAT_ID**
A: Убедитесь что отправили сообщение в группу ПОСЛЕ добавления бота
**Q: Лимит сообщений?**
A: Telegram Bot API позволяет 30 сообщений в секунду (более чем достаточно)
**Q: Можно ли использовать личный чат вместо группы?**
A: Да! Напишите боту /start, получите свой chat_id через getUpdates
**Q: Безопасно ли хранить токен в коде?**
A: Да, если файл в .gitignore. Но для production лучше использовать environment variables
---
**Дата создания**: 27 декабря 2025 г.