Permite membrilor grupului sa foloseasca bot-ul in DM prin verificare API

Adauga logica de autorizare flexibila:
- Useri in TELEGRAM_ALLOWED_USER_IDS (whitelist explicit)
- SAU membrii grupului TELEGRAM_CHAT_ID (verificare getChatMember API)
- Membrii grupului pot folosi bot-ul atat in grup cat si in DM individual

Modificari:
- telegram_trigger_bot.py: metoda is_member_of_group() cu verificare API
- telegram_trigger_bot.py: is_user_allowed() cu logica OR pentru whitelist + grup
- .env.example: comentarii actualizate pentru noua logica
- TELEGRAM_BOT_SETUP.md: documentatie completa pentru autorizare

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-12 11:26:48 +02:00
parent 548526fdde
commit 91021fa530
3 changed files with 75 additions and 21 deletions

View File

@@ -27,9 +27,13 @@ Tu (Telegram) → Bot → Rulează scraper → Trimite CSV-uri înapoi
3. Alege nume pentru bot (ex: "BTGO Scraper Bot")
4. Copiază **token-ul** primit (ex: `123456789:ABCdefGHIjklMNOpqrs`)
### 2. Obține User ID-ul Tău
### 2. Obține User ID-ul Tău (OPȚIONAL)
Ai nevoie de User ID pentru securitate (doar tu poți rula scraper-ul).
User ID e necesar doar dacă vrei să autorizezi utilizatori care **NU sunt în grup**.
**Dacă folosești grup:** Toți membrii grupului pot folosi bot-ul automat (în grup sau DM)!
**Pentru whitelist suplimentar:**
**Opțiunea A - Folosește bot existent:**
```bash
@@ -98,19 +102,20 @@ Editează `.env` și adaugă:
# Bot token (același ca pentru notificări sau nou)
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrs
# User IDs autorizați (separați prin virgulă)
# DOAR acești useri pot rula /scrape din grup
TELEGRAM_ALLOWED_USER_IDS=123456789,987654321
# Chat ID GRUP pentru notificări automate + răspunsuri comenzi
# Chat ID GRUP pentru notificări automate + autorizare membri
# IMPORTANT: Negativ pentru grupuri! (ex: -1001234567890)
# TOȚI membrii acestui grup pot folosi bot-ul (în grup sau DM)
TELEGRAM_CHAT_ID=-1001234567890
# User IDs autorizați individual (OPȚIONAL - separați prin virgulă)
# Pentru useri care NU sunt în grup dar vrei să le dai acces
TELEGRAM_ALLOWED_USER_IDS=123456789,987654321
```
**Securitate:**
- `TELEGRAM_ALLOWED_USER_IDS` = doar acești useri pot rula `/scrape` din grup
- Lasă gol dacă vrei ca oricine din grup să poată rula (nesigur!)
- Bot-ul verifică User ID-ul celui care trimite comanda, NU group ID-ul
**Autorizare:**
- **Orice membru al grupului `TELEGRAM_CHAT_ID`** poate folosi bot-ul (în grup SAU în DM)
- **SAU** useri din `TELEGRAM_ALLOWED_USER_IDS` (chiar dacă nu sunt în grup)
- Dacă ambele sunt goale = bot deschis pentru oricine (NESIGUR!)
### 4. Pornire Bot
@@ -153,7 +158,7 @@ Bot pornit. Așteaptă comenzi...
/help - Ajutor utilizare
```
**Securitate:** Doar userii din `TELEGRAM_ALLOWED_USER_IDS` pot rula comenzi!
**Autorizare:** Membri ai grupului TELEGRAM_CHAT_ID SAU useri din TELEGRAM_ALLOWED_USER_IDS pot rula comenzi!
### Flow Tipic în Grup
@@ -308,16 +313,18 @@ TELEGRAM_ALLOWED_USER_IDS=123456789
**⚠️ ATENȚIE:**
- Bot-ul are acces la credentials din `.env`
- `TELEGRAM_ALLOWED_USER_IDS` TREBUIE configurat!
- `TELEGRAM_CHAT_ID` sau `TELEGRAM_ALLOWED_USER_IDS` TREBUIE configurat pentru securitate!
- Nu partaja token-ul botului
- VM-ul trebuie securizat (firewall, VPN)
**Best Practices:**
```bash
# ✅ Bun - doar tu și admin
# ✅ Bun - grup autorizat + whitelist individual
TELEGRAM_CHAT_ID=-1001234567890
TELEGRAM_ALLOWED_USER_IDS=123456789,987654321
# ❌ Rău - oricine cu acces la bot
# ❌ Rău - ambele goale (oricine are acces)
TELEGRAM_CHAT_ID=
TELEGRAM_ALLOWED_USER_IDS=
# ✅ Bun - notificări separate de trigger