Wiki · Integrace
Telegram — provoz bota
Nejčastější problém s Telegramem není v Hermesu, ale v privacy módu bota. Prakticky: nastavení, skupiny a doručování.
Rychlá cesta
V dashboardu (Messaging → Telegram) i v aplikaci je tlačítko Create with QR:
naskenujete kód, Hermes bota založí, sám zjistí vaše číselné ID a zapíše
TELEGRAM_BOT_TOKEN i TELEGRAM_ALLOWED_USERS do .env.
Ruční cesta níže je pro ty, kdo chtějí mít bota pod vlastní kontrolou — a je dobré vědět, co přesně
se při ní děje.
1. Bot u BotFathera
Token je klíč od bota. Kdo ho má, ovládá bota. Když unikne, zneplatníte ho
příkazem /revoke u BotFathera a vyměníte v .env.
| Příkaz u BotFathera | K čemu |
|---|---|
/setdescription | Text „Co tento bot umí?“ před první zprávou |
/setcommands | Nabídka příkazů na tlačítku „/“ (stačí help, new, sethome) |
/setuserpic | Avatar bota |
/setprivacy | Právě ten privacy mód — viz níže |
2. Privacy mód: proč bot ve skupině „nevidí“
Privacy mód je ve výchozím stavu zapnutý. Bot pak dostane jen:
- zprávy začínající
/(příkazy), - odpovědi na své vlastní zprávy,
- servisní zprávy (kdo přišel/odešel, připíchnutí),
- vše ve skupinách, kde je správcem.
Alternativa bez vypínání privacy módu: udělat bota správcem skupiny. Správci dostávají všechny zprávy a nemusíte nic přenastavovat globálně.
Když má bot poslouchat, ale neodpovídat
Tím se bot dívá na dění ve skupině (může shrnout, co se probíralo), ale promluví jen tehdy, když ho někdo označí nebo zavolá příkazem.
3. Číselné ID a přístup
Hermes ověřuje přístup podle číselného ID, ne podle uživatelského jména (to se dá změnit).
Svoje ID zjistíte zprávou botovi @userinfobot.
Prázdné TELEGRAM_ALLOWED_USERS znamená, že bot odpovídá komukoli, kdo ho najde.
Pro vlastní agenta to nikdy nechcete — vždy doplňte aspoň svoje ID.
4. Co všechno umí
| Vlastnost | Jak se projeví |
|---|---|
| Hlasové zprávy | Příchozí se přepíšou na text; odpovědět lze i hlasem (když je zapnutý hlasový výstup) |
| Soubory a fotky | Posílá i přijímá přílohy; cesta v MEDIA:/… musí být čitelná na stroji, kde běží brána |
| Doručování z pravidelných úloh | Výsledek cronu přiletí do domovského kanálu (/sethome nebo TELEGRAM_HOME_CHANNEL) |
| Vlákna (témata) | V skupinách s tématy se dá určit, do kterého vlákna cron posílá (TELEGRAM_CRON_THREAD_ID) |
| Reakce | Agent může označit zprávu reakcí místo odpovědi |
| Velké soubory (nad 20 MB) | Jen přes vlastní Bot API server (TELEGRAM_LOCAL, TELEGRAM_API_ID, TELEGRAM_API_HASH) |
| Webhook místo dotazování | Když máte veřejnou HTTPS adresu (TELEGRAM_WEBHOOK_URL, …_SECRET, …_PORT) |
5. Více botů v jedné skupině
Funguje to, ale každý bot musí mít vlastní token a vlastní profil. Aby se nepřekřikovali, nastavte
jim různé spouštěcí fráze (mention_patterns) nebo je oddělte do témat. Bez toho budou
na stejnou zprávu reagovat oba.
Časté potíže
| Příznak | Příčina |
|---|---|
| V soukromé zprávě funguje, ve skupině mlčí | Privacy mód (viz výše) — vypnout, nebo bota udělat správcem |
| Bot po přidání do skupiny nic nedělá, i po vypnutí privacy módu | Bota je potřeba ze skupiny odebrat a znovu přidat |
| Bot nereaguje vůbec | Neběží brána (hermes gateway status), nebo je ID uživatele mimo allowlist |
| „Unauthorized“ v logu | Špatný nebo zneplatněný token; po /revoke je potřeba nový |
| Příloha se neodešle | Běží brána v Dockeru a cesta v MEDIA: existuje jen uvnitř kontejneru |
| Soubor nad 20 MB nejde | Limit veřejného Bot API — potřebujete vlastní Bot API server |
Jak to máme u nás
Telegram používáme jako dálkový ovladač: ráno přijde souhrn z cronu, během dne se ptáme z telefonu a výsledky (tabulky, PDF) chodí zpět jako přílohy. Dvě věci se vyplatily:
| Zvyk | Proč |
|---|---|
| Domovský kanál nastavený hned na začátku | Bez něj cron neví, kam psát, a výsledky zapadnou |
| Allowlist jen s vlastními ID | Bot je veřejně dohledatelný; allowlist je jediná brána |
