Talim

Hermes: Telegram kanalini ulash — amaliy

Telegram gateway'ni sozlash, bot token, ruxsatlar va xatolarni tuzatish — qadam-baqadam.

9 daqiqa o‘qishO'rtaKanallar va gateway-lar9 / 12
Telegram gateway ulanishi

Oldingi dars hermes-kanallar — Gateway nima, qaysi kanallar borligi haqida overview edi. Bu darsda bir kanalni — Telegramni — boshidan oxirigacha ulaymiz. Qadam-baqadam, xatolar bilan birga.

1. Bot yaratish — BotFather

Telegram’da @BotFather ni toping (ko’k tasdiq belgisi bo’lgan rasmiy bot).

  1. /newbot yuboring — nom bering (Mening Hermes Botim).
  2. Username bering — *_bot bilan tugashi shart (hilol_hermes_bot). Band bo’lsa boshqa nom tanlang.
  3. Javobda HTTP API token keladi — 123456:AAH... ko’rinishida. Darhol nusxa oling.

Tokenni Hermes Settingsda saqlang, .env da emas. .env git’ga tushib ketishi mumkin, Settings esa shifrlangan saqlaydi va gateway restart bilan avtomatik yangilanadi.

Botni yaratganingizdan keyin BotFather’da /setprivacyDisable qilish shart emas — guruhda bot hamma xabarni ko’rishi uchun admin qilganingiz yetarli (3-bo’lim).

2. Gateway sozlash — Hermes Desktop

  1. Hermes DesktopSettings → Messaging → Telegram ga kiring.
  2. Bot Token maydoniga tokenni joylang, Save Changes bosing.
  3. Gateway avtomatik restart bo’ladi — logni terminalda tekshiring:
[Gateway] Telegram adapter restarting...
[Gateway] Telegram polling started — getMe: @hilol_hermes_bot
[Gateway] Listening on 0.0.0.0:3000

Agar 401 Unauthorized ko’rsangiz — 4-bo’limga qarang. Portlar 3000 (gateway) va 8000 (core) — firewall’da yopiq bo’lmasin.

Maslahat

Avval shaxsiy chatda test qiling, keyin guruhga o'ting. Whitelist va topic xatolari aralashib ketmaydi.

3. Guruh va Topics — chat_id va whitelist

Guruhda 3 joyda xato chiqadi: guruh sozlamasi, bot huquqlari, whitelist.

  1. Yangi guruh yarating → Manage Group → Topics ni yoqing.
  2. Mavzular oching: #general (buyruqlar), #capture (g’oyalar va fayllar).
  3. Botni guruhga qo’shib admin qiling.
  4. Botga biror xabar yozib, chat_id ni oling:
curl -s "https://api.telegram.org/bot<TOKEN>/getUpdates" | jq
# message.chat.id = -1001234567890 (guruh)
# message.from.id = 123456789  (sizning ID)

chat_id manfiy bo’lsa — guruh, musbat bo’lsa — shaxsiy chat.

  1. ID’larni whitelist’ga qo’shing:
Sozlama Qayerda Misol
Bot Token Hermes Settings → Messaging → Telegram 123456:AAH...
Allowed Users Settings → Messaging → Telegram → Whitelist 123456789 (sizning ID)
Allowed Groups Settings → Messaging → Telegram → Groups -1001234567890
Topics Telegram guruh → Manage Topics #general, #capture

Whitelist bo’sh bo’lsa bot hech kimga javob bermaydi — bu himoya, xato emas.

Test: #general da /ping yozing. Bot pong deb javob berishi kerak. Javob yo’q bo’lsa — logda odatda not whitelisted yoziladi.

4. Ko’p uchraydigan xatolar

Xato Sabab Yechim
401 Unauthorized Token eskirgan yoki noto’g’ri ko’chirilgan Tokenni qayta nusxalab Settings’da yangilang → Save; eskisini BotFather’da /revoke qiling
409 Conflict: terminated by other getUpdates Bir token ikki joyda polling (lokal + VPS) Birini o’chiring yoki webhook’ga o’ting
Javobsiz (ignored: not whitelisted) Whitelist bo’sh yoki username yozilgan getUpdates dan from.id raqamini oling — username ishlamaydi
Topic’da javob yo’q Bot admin emas yoki Topics yopiq Botni admin qiling, Topics’ni yoqing
429 Too Many Requests Loop’da spam, juda tez so’rov 1-2s delay qo’shing, cron 10s dan kam bo’lmasin

Xavfsizlik

Bot tokeni — parol bilan teng. Uni GitHub'ga, skrinshotga yoki guruh chatiga tashlamang. Token sizib chiqsa, istalgan odam sizning nomingizdan botni boshqaradi. Sizib chiqqan zahoti BotFather'da /revoke qilib yangi token oling va Hermes'da yangilang.

Xulosa

Oqim: BotFather → token → Settings → Save → log → guruh + Topics + admin → getUpdates → whitelist → /ping. Shaxsiy chatda ishladi, guruhda yo’q — muammo whitelist yoki admin huquqida. 401 — token, 409 — ikki polling to’qnashuvi.

Bu dars foydali bo‘ldimi?

Keyingi darsReal loyihalar →