Python Discord 机器人删除用户消息

Python Discord bot delete users message

我正在 python3(discord.py 1.3.3,discord 1.0.1)中开发一个 discord 机器人,我需要删除一条用户消息,但我想不通了解如何正确调用协程。

我看过 other , and tried reviewing the documentation (and the discord.py docs) 但我一直没弄明白。

这是我正在测试的内容:

import discord
from discord.ext import commands

TOKEN = os.getenv('DISCORD_TOKEN')
bot = commands.Bot(command_prefix='!')

@bot.command(name='deleteme', help='testing command for dev use')
async def deleteme(ctx):
    msg = ctx.message.id
    print(f'DEBUG: message id is {msg}')
    await msg.delete
    # await ctx.delete(msg, delay=None)  #nope
    # await ctx.delete_message(ctx.message)  #nope
    # await bot.delete_message(ctx.message)  #nope
    # await command.delete_message(ctx.message)  #nope
    # await discord.Client.delete_message(msg)  #nope

运行 此 return 是带有 ID 号的控制台调试消息,但消息未被删除。如果我在 await msg.delete 之后添加调试打印行,它不会 return。所以这告诉我脚本挂在哪里。也就是说,我仍然无法弄清楚正确的命令应该是什么。

机器人服务器权限包括"manage messages"

为了删除消息,您必须使用 discord.Message 对象,例如,您可以这样做:

await ctx.message.delete()

delete()协程是discord.Message

的一个方法