You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python开发Discord Bot实现指定用户含已删全消息单独存储?

实现方案

前置准备

首先安装依赖库discord.py:
pip install discord.py
之后到Discord开发者平台创建应用,开启Bot功能,记录你的Bot Token,同时在Bot设置页开启Message Content Intent权限。将Bot邀请到目标服务器时,需授予以下权限:

  • 查看频道/读取消息
  • 发送消息
  • 读取消息历史
  • 上传附件

核心代码实现

import discord

# 自定义配置项,全部替换为你自己的实际值即可
MONITORED_USER_ID = 123456789  # 要监控的目标用户ID
LOG_CHANNEL_ID = 987654321      # 专属日志频道的ID
BOT_TOKEN = "你的Bot专属Token"

# 开启必要的网关意图
intents = discord.Intents.default()
intents.message_content = True
intents.messages = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print(f"Bot已成功登录,当前身份为:{client.user}")

@client.event
async def on_message(message):
    # 跳过Bot自身发送的消息,避免循环
    if message.author == client.user:
        return
    # 匹配到被监控用户的消息时,同步到日志频道
    if message.author.id == MONITORED_USER_ID:
        log_channel = client.get_channel(LOG_CHANNEL_ID)
        # 构造日志消息内容,包含发送时间、用户名、消息原文
        log_text = f"用户 {message.author.name}(ID:{message.author.id})于 {message.created_at.strftime('%Y-%m-%d %H:%M:%S UTC')} 发送:\n{message.content}"
        # 同步原消息的所有附件(图片、文件等)
        attachment_files = []
        for att in message.attachments:
            attachment_files.append(await att.to_file())
        # 发送到日志频道
        await log_channel.send(content=log_text, files=attachment_files)

# 可选扩展:标记原消息被删除的状态
@client.event
async def on_message_delete(message):
    if message.author.id == MONITORED_USER_ID:
        log_channel = client.get_channel(LOG_CHANNEL_ID)
        await log_channel.send(content=f"*提示:上述对应ID为 {message.id} 的原消息已被发送者/管理员删除*")

client.run(BOT_TOKEN)

注意事项

  • 所有ID需要先在Discord客户端设置中开启开发者模式,之后右键对应用户/频道选择「复制ID」获取,不要填写用户名或频道名称
  • 日志频道建议设置为仅管理员和Bot可访问,避免日志被篡改
  • 请勿泄露Bot Token,若Token不慎泄露请立刻到Discord开发者平台重置
  • 使用该功能需遵守Discord服务条款、当地数据隐私法规以及所在服务器的管理规则,违规使用需自行承担相应责任

内容的提问来源于stack exchange,提问作者dillythecoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:48:05