通过 discord.py 中的用户 ID 将 DM 发送给某人

时间:2021-01-07 02:44:35

标签: python discord discord.py-rewrite

我检查了很多答案,但这些答案使用了 ctx.author.send('something')。但我想通过用户 ID 发送,而不是 AUTHOR。

这是我的代码:

@bot.command()
async def dm(ctx):
    await ctx.send(496021236988510209, 'test')

它甚至不返回错误消息。

2 个答案:

答案 0 :(得分:1)

要获得服务器成员,请使用 Guild.get_member

还有 Client.fetch_user 仅适用于机器人。

如果它应该可以工作但没有成员出现,那很可能是因为您在创建 Discord 客户端之前忘记说明您使用 members 的意图。例如:

import discord
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)

可能重复,here

答案 1 :(得分:0)

您可以使用以下代码:

@client.command()
@commands.has_permissions(manage_roles = True)
async def dm(ctx, users: Greedy[User], *, message):
    for user in users:
      await user.send(message)

你只是做 dm @3422353423342 消息

@3422353423342 代表一个用户 ID