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

使用Python Discord Bot发消息显示我为作者,如何以Bot身份发送?

解决Discord Bot以自身身份发送消息并编辑的问题

你当前代码里打印的ctx.message.author是触发命令的用户消息的作者,不是Bot发送的消息的作者。ctx.channel.send()本身就是以Bot身份发送消息的,问题出在你没捕获Bot发送的那条消息对象,导致后续无法编辑。

修改代码,捕获Bot发送的消息对象即可:

@bot.command(name="send")
async def send(ctx: Context) -> None:
    message_content = "message"
    # 捕获Bot发送的消息对象
    bot_message = await ctx.channel.send(message_content)
    # 打印Bot自身(这条消息的作者)
    print(bot_message.author)
    # 后续可以编辑Bot发送的这条消息
    await bot_message.edit(content="编辑后的消息内容")

关键说明:

  • ctx.message是用户输入命令时发送的那条消息,它的author必然是发起命令的用户
  • ctx.channel.send()的返回值是Bot刚发送的消息对象,这个对象的author就是Bot账号本身
  • 要编辑Bot发送的消息,必须通过这个返回的消息对象调用edit()方法,而不是用ctx.message

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:45:20