如何使用Python实现仅监听Discord指定频道、忽略其他频道消息
Discord 单频道实时消息监听实现方案
- 前置准备
- 开启Discord客户端的开发者模式,右键目标频道b1选择「复制ID」,记录该数值
- 进入Discord开发者平台对应的Bot管理页,开启
Message Content Intent权限,否则无法正常获取消息内容 - 确认Bot已被邀请到频道b1所属的服务器,且拥有查看频道、读取消息的权限
- 修正后的可运行代码:
import discord # discord.py v2.0 及以上版本必须配置意图 intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) # 替换为你刚才复制的频道b1的数字ID TARGET_CHANNEL_ID = 替换为实际频道ID @client.event async def on_message(message): # 过滤Bot自身发送的消息,不需要可删除该行 if message.author == client.user: return # 仅处理目标频道的消息 if message.channel.id == TARGET_CHANNEL_ID: # 此处可自定义消息处理逻辑,以下为打印示例 print(f"发送者:{message.author.name} | 消息内容:{message.content}") # 替换为你的Bot Token client.run("你的Bot Token")
- 注意事项
- 频道ID为数字类型,不要用引号包裹,否则类型不匹配会导致判断失效
- 如果使用discord.py v1.x版本,可删除代码中intents相关的配置,但建议升级到最新稳定版避免API兼容问题
内容的提问来源于stack exchange,提问作者M L
相关产品推荐
相关产品推荐

