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

如何获取Discord服务器最后一条消息内容?Python机器人开发求助

解决Discord机器人获取最后一条消息的问题

首先我注意到你贴出的代码片段不完整,on...后面的事件定义被截断了,这大概率是代码无法正常运行的原因之一。结合你的需求,我来帮你梳理正确的实现思路和可运行的代码示例。

关键前提说明

  • 监听用户消息需要用到Discord.py的on_message核心事件,这是捕获消息的基础入口。
  • 由于你使用的是Python 3.6.4,要注意Discord.py的版本兼容性:Python 3.6.x仅支持Discord.py v1.7.3,更高版本已经不再兼容该Python版本,安装时需要指定版本:
    pip install discord.py==1.7.3
    

完整代码示例(获取并重复消息)

下面是一个基础实现,包含消息监听、避免自循环、以及获取/重复消息的逻辑(你可以替换示例中的触发条件为你的特定需求):

import discord

TOKEN = '你的机器人令牌'
client = discord.Client()

@client.event
async def on_ready():
    print(f'已成功以 {client.user} 身份登录')

@client.event
async def on_message(message):
    # 防止机器人重复自己发送的消息,避免死循环
    if message.author == client.user:
        return
    
    # 这里替换为你的特定触发条件,比如关键词、用户权限等
    if message.content.startswith('重复这条消息'):
        # 直接重复当前触发的消息
        await message.channel.send(message.content)
        
        # 如果需要获取频道内的最后一条历史消息(非当前触发消息),可以用这段代码:
        # history = await message.channel.history(limit=1).flatten()
        # last_message = history[0]
        # await message.channel.send(last_message.content)

client.run(TOKEN)

常见问题排查

  • 令牌错误:确保TOKEN是从Discord开发者平台正确获取的机器人专属令牌,绝对不要泄露给他人。
  • 权限不足:邀请机器人到服务器时,需要勾选发送消息和读取消息历史的权限,否则机器人无法正常读取和发送消息。
  • 版本不兼容:再次确认安装的Discord.py版本是v1.7.3,最新版本会因Python版本过低报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:48:15