Discord.py 向自定义 ID 用户发送 DM
Posted
技术标签:
【中文标题】Discord.py 向自定义 ID 用户发送 DM【英文标题】:Discord.py Send a DM to a Custom ID User 【发布时间】:2021-04-26 13:18:03 【问题描述】:我正在使用 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)
【问题讨论】:
虽然这很可能是意图或 int(id) 问题 (discordpy.readthedocs.io/en/latest/intents.html),但它与 ***.com/questions/54499864/… 重复 【参考方案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()
向用户发送直接消息。
另一个重要的事情是机器人无法向不与机器人共享公会的用户发送 DM,因此请确保该用户在运行机器人的公会中。
参考资料:
Migrating to 1.0 fetch_user() channel.send() member.send()【讨论】:
以上是关于Discord.py 向自定义 ID 用户发送 DM的主要内容,如果未能解决你的问题,请参考以下文章
您能否确定是不是可以使用 discord.py 直接向用户发送消息?