Discord (Bot API)
Status: ready for DM and guild text channels via the official Discord bot gateway.Pairing
Discord DM’lari standart bo‘yicha pairing rejimiga o‘rnatilgan.
Slash commands
Native buyruq xatti-harakati va buyruqlar katalogi.
Channel troubleshooting
Kanallararo diagnostika va tuzatish jarayoni.
Tezkor sozlash
Create a Discord bot and enable intents
Discord Developer Portal’da ilova yarating, bot qo‘shing, so‘ng quyidagilarni yoqing:
Tokenni aniqlash hisobga (account) bog‘liq tarzda amalga oshiriladi. Config ichidagi token qiymatlari env fallback’dan ustun turadi.
DISCORD_BOT_TOKEN faqat standart (default) hisob uchun ishlatiladi.Runtime modeli
- Gateway Discord ulanishiga egalik qiladi.
- Javoblarni marshrutlash deterministik: Discord’dan kirgan javoblar yana Discord’ga qaytadi.
- Standart holatda (
session.dmScope=main), to‘g‘ridan-to‘g‘ri chatlar agentning asosiy sessiyasi (agent:main:main) bilan bo‘lishiladi. - Guild kanallari alohida sessiya kalitlariga ega (
agent:<agentId>:discord:channel:<channelId>). - Group DM’lar standart holatda e’tiborsiz qoldiriladi (
channels.discord.dm.groupEnabled=false). - Native slash buyruqlari alohida buyruq sessiyalarida ishlaydi (
agent:<agentId>:discord:slash:<userId>), shu bilan birga marshrutlangan suhbat sessiyasigaCommandTargetSessionKeyuzatiladi.
Kirishni boshqarish va marshrutlash
- DM policy
- Guild policy
- Mentions and group DMs
channels.discord.dmPolicy DM kirishini boshqaradi (legacy: channels.discord.dm.policy):Rolga asoslangan agent marshrutlash
Discord guild a’zolarini role ID orqali turli agentlarga marshrutlash uchunbindings[].match.roles dan foydalaning. Rolga asoslangan binding’lar faqat role ID’larini qabul qiladi va peer yoki parent-peer binding’lardan keyin, ammo faqat guild binding’laridan oldin baholanadi. Agar binding boshqa match maydonlarini ham belgilasa (masalan peer + guildId + roles), barcha ko‘rsatilgan maydonlar mos kelishi kerak.
Developer Portal sozlamalari
Create app and bot
Create app and bot
Privileged intents
Privileged intents
Bot -> Privileged Gateway Intents bo‘limida quyidagilarni yoqing:
OAuth scopes and baseline permissions
OAuth scopes and baseline permissions
OAuth URL generator:
Copy IDs
Copy IDs
Discord Developer Mode’ni yoqing, so‘ng quyidagilarni nusxalang:
Mahalliy buyruqlar va buyruq autentifikatsiyasi
commands.nativesukut bo‘yicha"auto"va Discord uchun yoqilgan.- Har bir kanal uchun bekor qilish:
channels.discord.commands.native. commands.native=falseavval ro‘yxatdan o‘tkazilgan Discord mahalliy buyruqlarini aniq o‘chiradi.- Mahalliy buyruq autentifikatsiyasi odatiy xabarlarni qayta ishlash bilan bir xil Discord allowlist/policy qoidalaridan foydalanadi.
- Buyruqlar Discord UI’da ruxsatsiz foydalanuvchilarga ko‘rinishi mumkin; bajarish jarayoni baribir OpenClaw autentifikatsiyasini qo‘llaydi va “not authorized” qaytaradi.
Funksiya tafsilotlari
Reply tags and native replies
Reply tags and native replies
History, context, and thread behavior
History, context, and thread behavior
Guild tarix konteksti:
Reaction notifications
Reaction notifications
Har bir guild uchun reaksiya bildirishnoma rejimi:
Ack reactions
Ack reactions
ackReaction OpenClaw kiruvchi xabarni qayta ishlayotgan paytda tasdiqlovchi emoji yuboradi.Config writes
Config writes
Kanal tomonidan boshlangan konfiguratsiya yozuvlari sukut bo‘yicha yoqilgan.
Gateway proxy
Gateway proxy
Discord gateway WebSocket trafigini
channels.discord.proxy orqali HTTP(S) proksi orqali yo‘naltiring.PluralKit support
PluralKit support
Proksilangan xabarlarni tizim a’zosi identifikatsiyasiga moslashtirish uchun PluralKit resolution’ni yoqing:
Presence configuration
Presence configuration
Presence yangilanishlari faqat status yoki activity maydoni o‘rnatilganda qo‘llaniladi.
Exec approvals in Discord
Exec approvals in Discord
Discord DM’larda tugma asosidagi exec tasdiqlarini qo‘llab-quvvatlaydi va ixtiyoriy ravishda tasdiq so‘rovlarini yuborilgan kanalga joylashi mumkin.
Vositalar va amal cheklovlari
Discord xabar amallari xabar yuborish, kanal administratsiyasi, moderatsiya, presence va metadata amallarini o‘z ichiga oladi. Asosiy misollar:- messaging:
sendMessage,readMessages,editMessage,deleteMessage,threadReply - reaksiyalar:
react,reactions,emojiList - moderatsiya:
timeout,kick,ban - holat:
setPresence
channels.discord.actions.* ostida joylashgan.
Standart gate xatti-harakati:
| Amallar guruhi | Standart |
|---|---|
| reactions, messages, threads, pins, polls, search, memberInfo, roleInfo, channelInfo, channels, voiceStatus, events, stickers, emojiUploads, stickerUploads, permissions | yoqilgan |
| 45. rollar | 12. oʻchirilgan |
| 46. moderatsiya | 15. oʻchirilgan |
| 17. presence | 18. oʻchirilgan |
Components v2 UI
OpenClaw exec tasdiqlari va kontekstlararo belgilar uchun Discord components v2’dan foydalanadi. Discord xabar amallari maxsus UI uchuncomponentsni ham qabul qilishi mumkin (kengaytirilgan; Carbon component instansiyalarini talab qiladi), legacy embeds esa mavjud, biroq tavsiya etilmaydi.
channels.discord.ui.components.accentColorDiscord komponent konteynerlarida ishlatiladigan aksent rangni (hex) belgilaydi.- Har bir akkaunt uchun
channels.discord.accounts.<id>.ui.components.accentColororqali sozlanadi. - Agar components v2 mavjud bo‘lsa,
embedse’tiborga olinmaydi.
Ovozli xabarlar
Discord ovozli xabarlari to‘lqin shakli (waveform) ko‘rinishini ko‘rsatadi va OGG/Opus audio hamda metama’lumotlarni talab qiladi. OpenClaw to‘lqin shaklini avtomatik yaratadi, biroq audio fayllarni tekshirish va konvertatsiya qilish uchun gateway xostidaffmpeg va ffprobe mavjud bo‘lishi kerak.
Talablar va cheklovlar:
- Lokal fayl yo‘lini taqdim eting (URL’lar rad etiladi).
- Matn kontentini kiritmang (Discord bir xil payload’da matn + ovozli xabarga ruxsat bermaydi).
- Istalgan audio formati qabul qilinadi; kerak bo‘lsa OpenClaw OGG/Opus’ga konvertatsiya qiladi.
Birinchi qadam: openclaw doctor va openclaw channels status --probe ni ishga tushiring (amaliy ogohlantirishlar + tezkor auditlar).
Used disallowed intents or bot sees no guild messages
Used disallowed intents or bot sees no guild messages
Guild messages blocked unexpectedly
Guild messages blocked unexpectedly
Require mention false but still blocked
Require mention false but still blocked
Keng tarqalgan sabablar:
Permissions audit mismatches
Permissions audit mismatches
channels status --probe ruxsat tekshiruvlari faqat raqamli kanal ID’lari uchun ishlaydi.DM and pairing issues
DM and pairing issues
Bot to bot loops
Bot to bot loops
Standart holatda bot tomonidan yozilgan xabarlar e’tiborga olinmaydi.
Konfiguratsiya bo‘yicha havola ko‘rsatkichlari
Asosiy ma’lumotnoma: Muhim Discord maydonlari:- ishga tushirish/autentifikatsiya:
enabled,token,accounts.*,allowBots - siyosat:
groupPolicy,dm.*,guilds.*,guilds.*.channels.* - buyruq:
commands.native,commands.useAccessGroups,configWrites - javob/tarix:
replyToMode,historyLimit,dmHistoryLimit,dms.*.historyLimit - yetkazish:
textChunkLimit,chunkMode,maxLinesPerMessage - media/qayta urinish:
mediaMaxMb,retry - harakatlar:
actions.* - holat:
activity,status,activityType,activityUrl - UI:
ui.components.accentColor - xususiyatlar:
pluralkit,execApprovals,intents,agentComponents,heartbeat,responsePrefix
Xavfsizlik va operatsiyalar
- Bot tokenlarini maxfiy ma’lumot sifatida saqlang (
DISCORD_BOT_TOKENnazorat qilinadigan muhitlarda tavsiya etiladi). - Eng kam zarur Discord ruxsatlarini bering.
- Agar buyruq deploy/state eskirgan bo‘lsa, gateway’ni qayta ishga tushiring va
openclaw channels status --probebilan yana tekshiring.