Asosiy tarkibga o'tish

Telegram (Bot API)

Status: grammY orqali bot DM + guruhlar uchun production-ready. Long polling sukut bo‘yicha; webhook ixtiyoriy.

Juftlash (Pairing)

Telegram uchun sukut bo‘yicha DM siyosati — juftlash (pairing).

Kanal nosozliklari

Kanallar bo‘yicha diagnostika va tuzatish qo‘llanmalari.

Gateway konfiguratsiyasi

Kanal konfiguratsiyasi naqshlari va to‘liq misollar.

Tezkor sozlash

1

BotFather’da bot tokenini yarating

Telegram’ni oching va @BotFather bilan chat qiling (handle aynan @BotFather ekanini tasdiqlang)./newbot buyrug‘ini bajaring, ko‘rsatmalarga amal qiling va tokenni saqlang.
2

Token va DM siyosatini sozlang

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123:abc",
      dmPolicy: "pairing",
      groups: { "*": { requireMention: true } },
    },
  },
}
Muhit varianti: TELEGRAM_BOT_TOKEN=... (faqat sukut bo‘yicha akkaunt uchun).
3

Gateway’ni ishga tushiring va birinchi DM’ni tasdiqlang

openclaw gateway
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Juftlash kodlari 1 soatdan keyin muddati tugaydi.
4

Botni guruhga qo‘shing

Botni guruhingizga qo‘shing, so‘ng channels.telegram.groups va groupPolicy ni kirish modelingizga moslab sozlang.
Token aniqlash tartibi akkauntga bog‘liq. Amalda konfiguratsiya qiymatlari muhitdan ustun turadi va TELEGRAM_BOT_TOKEN faqat sukut bo‘yicha akkauntga qo‘llanadi.

Telegram tomoni sozlamalari

Telegram botlari sukut bo‘yicha Privacy Mode rejimida bo‘ladi, bu esa guruhdagi qaysi xabarlarni qabul qilishini cheklaydi.Agar bot barcha guruh xabarlarini ko‘rishi kerak bo‘lsa, quyidagilardan birini bajaring:
  • /setprivacy orqali privacy mode’ni o‘chiring, yoki
  • botni guruhga admin sifatida qo‘shing.
Privacy mode’ni o‘zgartirgandan so‘ng, Telegram o‘zgarishni qo‘llashi uchun botni har bir guruhdan olib tashlab, qayta qo‘shing.
Admin maqomi Telegram guruh sozlamalarida boshqariladi.Admin botlar barcha guruh xabarlarini oladi, bu doimiy faol guruh xatti-harakati uchun foydali.
  • /setjoingroups — guruhlarga qo‘shishni ruxsat berish/taqiqlash
  • /setprivacy — guruh ko‘rinish xatti-harakatini boshqarish

Kirish nazorati va faollashtirish

channels.telegram.dmPolicy to‘g‘ridan-to‘g‘ri xabar (DM) kirishini boshqaradi:
  • pairing (standart)
  • allowlist
  • open (allowFrom ichida "*" bo‘lishi kerak)
  • disabled
channels.telegram.allowFrom raqamli Telegram foydalanuvchi ID’larini qabul qiladi. telegram: / tg: prefikslari qabul qilinadi va normallashtiriladi. Onboarding wizard @username kiritishni qabul qiladi va uni raqamli ID’ga o‘giradi. Agar yangilangan bo‘lsangiz va konfiguratsiyada @username ko‘rinishidagi allowlist yozuvlari bo‘lsa, ularni ID’ga o‘girish uchun openclaw doctor --fix ni ishga tushiring (best-effort; Telegram bot tokeni talab qilinadi).

Telegram user ID’ingizni topish

Xavfsiz usul (uchinchi tomon botsiz):
  1. Botga DM yuboring.
  2. openclaw logs --follow ni ishga tushiring.
  3. from.id ni o‘qing.
Rasmiy Bot API usuli:
curl "https://api.telegram.org/bot<bot_token>/getUpdates"
Uchinchi tomon (kamroq maxfiy): @userinfobot yoki @getidsbot.

Ishlash xatti-harakati

  • Telegram gateway jarayoniga tegishli.
  • Marshrutlash deterministik: Telegram’dan kirgan xabarlar Telegram’ga javob qaytaradi (model kanallarni tanlamaydi).
  • Kiruvchi xabarlar umumiy kanal konvertiga reply metadata va media placeholder’lar bilan normallashtiriladi.
  • Guruh sessiyalari guruh ID bo‘yicha ajratiladi. Forum mavzulari izolyatsiya uchun :topic:<threadId> qo‘shimchasini qo‘shadi.
  • DM xabarlari message_thread_id ni o‘z ichiga olishi mumkin; OpenClaw thread-aware sessiya kalitlari bilan marshrutlaydi va javoblarda thread ID’ni saqlaydi.
  • Long polling grammY runner’dan har-chat/har-thread ketma-ketlik bilan foydalanadi. Umumiy parallelizm agents.defaults.maxConcurrent orqali boshqariladi.
  • Telegram Bot API o‘qilganlik kvitansiyalarini qo‘llab-quvvatlamaydi (sendReadReceipts qo‘llanilmaydi).

Tegishli