如何使用 Discord.py 私信特定用户?
How can I dm a specific User by using Discord.py?
我正在用 discord.py 制作一个 discord 机器人,当用户使用特定命令时我想要特定用户。
from discord import DMChannel
client = discord.Client()
client = commands.Bot(command_prefix=']')
@client.command(name='dmsend', pass_context=True)
async def dmsend(ctx, user_id):
user = await client.fetch_user("71123221123")
await DMChannel.send(user, "Put the message here")
当我发出命令 ]dmsend 时,没有任何反应。我也试过 dmsend。但是什么也没发生。
使用await user.send("message")
我注意到的几件事:
你定义了两次client
,那只会出错。
首先)删除client = discord.Client()
,你不再需要它了。
如果要向特定用户 ID 发送消息,则不能将其括在引号中。另外,你应该小心fetch
,因为这样一个请求被发送到API,并且它们是有限的。
二)将await client.fetch_user("71123221123")
改成如下:
await client.get_user(71123221123) # No fetch
如果您有 user
要将消息发送到,则无需创建另一个 DMChannel
。
三)将await DMChannel.send()
改成如下:
await user.send("YourMessageHere")
您可能还需要启用 members
Intent,这里有一些关于此的好帖子:
打开 Intents 后的完整代码可能是:
intents = discord.Intents.all()
client = commands.Bot(command_prefix=']', intents=intents)
@client.command(name='dmsend', pass_context=True)
async def dmsend(ctx):
user = await client.get_user(71123221123)
await user.send("This is a test")
client.run("YourTokenHere")
我正在用 discord.py 制作一个 discord 机器人,当用户使用特定命令时我想要特定用户。
from discord import DMChannel
client = discord.Client()
client = commands.Bot(command_prefix=']')
@client.command(name='dmsend', pass_context=True)
async def dmsend(ctx, user_id):
user = await client.fetch_user("71123221123")
await DMChannel.send(user, "Put the message here")
当我发出命令 ]dmsend 时,没有任何反应。我也试过 dmsend。但是什么也没发生。
使用await user.send("message")
我注意到的几件事:
你定义了两次client
,那只会出错。
首先)删除client = discord.Client()
,你不再需要它了。
如果要向特定用户 ID 发送消息,则不能将其括在引号中。另外,你应该小心fetch
,因为这样一个请求被发送到API,并且它们是有限的。
二)将await client.fetch_user("71123221123")
改成如下:
await client.get_user(71123221123) # No fetch
如果您有 user
要将消息发送到,则无需创建另一个 DMChannel
。
三)将await DMChannel.send()
改成如下:
await user.send("YourMessageHere")
您可能还需要启用 members
Intent,这里有一些关于此的好帖子:
打开 Intents 后的完整代码可能是:
intents = discord.Intents.all()
client = commands.Bot(command_prefix=']', intents=intents)
@client.command(name='dmsend', pass_context=True)
async def dmsend(ctx):
user = await client.get_user(71123221123)
await user.send("This is a test")
client.run("YourTokenHere")