我正在使用 discord.py,并想将自定义 DM 发送给具有我希望的 ID 的自定义用户。我确实尝试了我们在 Stack Overflow 和 discord.py 上的所有方法和选项,但是,它们最终都不起作用。我得到的结果总是无。有什么建议吗?
我尝试过的:
#1
user = await bot.get_user_info(user_id)
await user.send('hello')
#2
await client.send_message(discord.Object(id='12324234183172'), 'hello')
#3
async def send_dm(ctx, member: discord.Member, *, content):
channel = await member.create_dm()
await channel.send(content)
答案 0 :(得分:1)
确保您使用的是 discord.py 重写分支,因为该分支是 discord.py 的最新版本。从 discord.py-rewrite 开始,您尝试发送直接消息的所有三种方式都不起作用。如果您使用的是 rewrite 分支,则可以更新以下三种方法中的任何一种:
在 #1 中,问题是方法 Client.get_user_info()
已更改为 Client.fetch_user()
,这应该会检索到正确的用户。
在 #2 中,问题是方法 Client.send_message()
已更改为 channel.send()
#3 中处理 DM 的方式目前没有使用,尽管它应该仍然有效。我建议您只需 member.send()
向用户发送直接消息。
另一件重要的事情是,bot 无法向不与 bot 共享公会的用户发送 DM,因此请确保该用户在运行 bot 的公会中。
参考文献: