# Настройка Telegram бота через @BotFather

## Шаг 1: Создание бота

1. Откройте Telegram и найдите @BotFather
2. Отправьте команду `/newbot`
3. Введите имя для вашего бота (например, "Skleroznik Link Bot")
4. Введите username для бота (должен заканчиваться на 'bot', например "skleroznik_link_bot")
5. BotFather выдаст вам токен бота в формате: `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`

## Шаг 2: Настройка переменных окружения

Добавьте в файл `.env`:

```env
# Telegram Bot Configuration
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
TELEGRAM_WEBHOOK_URL=https://your-domain.com/api/telegram/webhook
TELEGRAM_ASYNC_REQUESTS=false

# Security Configuration
TELEGRAM_SECRET_TOKEN=your-super-secret-token-here
TELEGRAM_RATE_LIMIT_MAX_ATTEMPTS=20
TELEGRAM_RATE_LIMIT_DECAY_MINUTES=1
TELEGRAM_REPLAY_PROTECTION_TTL_MINUTES=60

# IP Whitelist (optional, leave empty to disable)
# TELEGRAM_ALLOWED_IPS=149.154.160.0/20,91.108.4.0/22
```

## Шаг 3: Настройка webhook

После развертывания приложения на сервере, установите webhook:

```bash
curl -X POST "https://api.telegram.org/bot{YOUR_BOT_TOKEN}/setWebhook" \
     -H "Content-Type: application/json" \
     -d '{
       "url": "https://your-domain.com/api/telegram/webhook",
       "secret_token": "your-secret-token-here"
     }'
```

## Шаг 4: Проверка webhook

Проверьте статус webhook:

```bash
curl "https://api.telegram.org/bot{YOUR_BOT_TOKEN}/getWebhookInfo"
```

## Безопасность

### Основные меры безопасности:
- ✅ **Секретный токен** - обязательная проверка X-Telegram-Bot-Api-Secret-Token
- ✅ **Rate Limiting** - ограничение частоты запросов (20 запросов в минуту)
- ✅ **Replay Protection** - защита от повторных запросов через кэширование update_id
- ✅ **IP Whitelist** - опциональное ограничение по IP адресам
- ✅ **HTTPS** - обязательное использование HTTPS для webhook URL
- ✅ **Логирование** - полное логирование всех операций и попыток взлома

### Дополнительные рекомендации:
- Храните токены в безопасном месте
- Регулярно обновляйте секретные токены
- Мониторьте логи на предмет подозрительной активности
- Настройте алерты при превышении лимитов
- Используйте нестандартные URL для webhook endpoint

## Команды бота

После настройки бот будет поддерживать следующие команды:
- `/start` - начало работы с ботом
- `/help` - справка по командам
- `/auth <token>` - аутентификация пользователя
- `/balance` - проверка баланса
- `/stats` - статистика сохраненных ссылок 