Python MassDM机器人工作正常,现在不会发送消息

Python MassDM机器人工作正常,现在不会发送消息,python,discord.py,Python,Discord.py,几个月前,我和一个叫Diggy的家伙(来自这个社区)为一个我和一些朋友在BlackDesert Online上运行的公会编写了一个MassDM机器人。在10月28日停止发送DMs之前,它一直工作正常。开始时,它只是将DM发送给具有指定角色的一些成员(105个成员中的3个) 现在我更新了dicord.py,它不会向任何人发送消息(有时只发送给其中一个,或者两个…有点随机) discord服务器中有105个用户,角色为“Miembros” 这是代码 bot = commands.Bot(comm

几个月前,我和一个叫Diggy的家伙(来自这个社区)为一个我和一些朋友在BlackDesert Online上运行的公会编写了一个MassDM机器人。在10月28日停止发送DMs之前,它一直工作正常。开始时,它只是将DM发送给具有指定角色的一些成员(105个成员中的3个)

现在我更新了dicord.py,它不会向任何人发送消息(有时只发送给其中一个,或者两个…有点随机)

discord服务器中有105个用户,角色为“Miembros”

这是代码

bot = commands.Bot(command_prefix="+", case_insensitive=True)
bot.remove_command("help")
 
@commands.has_permissions(administrator=True)
@bot.command()
async def announce(ctx, role: discord.Role, *, msg):
    if ctx.channel.id == 708458959991865354:
        members = [m for m in ctx.guild.members if role in m.roles]
        count = 0
        for m in members:
            try:
                await m.send(msg)
                await ctx.send(f":white_check_mark: Mensaje enviado a {m}")
                count += 1
            except:
                await ctx.send(f":x: No se pudo enviar el mensaje a {m}!")
        await ctx.send(f"Hecho! {count} miembro{'' if count == 1 else 's'} notificados de un total de {len(members)}")
    else:
        await ctx.send("Este comando no esta permitido en este canal.")

bot.run("...")

我一直在阅读文档并试图理解如何解决它,但我想我的python知识相当贫乏。谢谢你的帮助。

我不确定,但你的问题可能是出于意图。在新版本的discord.py(1.5.x)中,有一些关于
意图的更新。意图类似于权限,您必须定义它才能获取频道、成员和某些事件等。在定义
bot=discord.bot(前缀=“”)
之前,您必须定义它

导入不一致
intents=discord.intents().all()
bot=discord.bot(前缀=“”,意图=意图)

如果您想获得更多关于意向的信息,可以查看。

我不确定,但您的问题可能是因为意向。在新版本的discord.py(1.5.x)中,有一些关于
意图的更新。意图类似于权限,您必须定义它才能获取频道、成员和某些事件等。在定义
bot=discord.bot(前缀=“”)
之前,您必须定义它

导入不一致
intents=discord.intents().all()
bot=discord.bot(前缀=“”,意图=意图)

如果您想获得有关意向的更多信息,可以查看。

您还需要在Discord Developer网站上允许意向。您还需要允许Discord开发者网站上的意图。