Python 如何从id discord.py获取用户对象

Python 如何从id discord.py获取用户对象,python,discord.py,Python,Discord.py,我有一个机器人,它将dm ping发送给一个用户,该用户的Id作为命令中的参数提供。 这是命令:.spam ID#u OF_PINGS 我遇到了以下错误: 忽略命令垃圾邮件中的异常: 回溯(最近一次呼叫最后一次): 文件“/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py”,第85行,包装 ret=等待coro(*args,**kwargs) 垃圾邮件中第16行的“bot.py”文件 等待ctx

我有一个机器人,它将dm ping发送给一个用户,该用户的Id作为命令中的参数提供。
这是命令:
.spam ID#u OF_PINGS

我遇到了以下错误:

忽略命令垃圾邮件中的异常:
回溯(最近一次呼叫最后一次):
文件“/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py”,第85行,包装
ret=等待coro(*args,**kwargs)
垃圾邮件中第16行的“bot.py”文件
等待ctx.send(f'开始ping{user.name}{num}次')
AttributeError:“非类型”对象没有属性“名称”
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“/app/.heroku/python/lib/python3.6/site packages/discord/ext/commands/bot.py”,第903行,在invoke中
等待ctx.command.invoke(ctx)
文件“/app/.heroku/python/lib/python3.6/site packages/discord/ext/commands/core.py”,第859行,在invoke中
等待注入(*ctx.args,**ctx.kwargs)
文件“/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py”,第94行,包装
从exc引发CommandInvokeError(exc)
discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:“非类型”对象没有属性“名称”
这是我的密码:

来自discord.ext导入命令
令牌='MyBotTokenHere'
前缀='。'
客户端=命令.Bot(命令前缀=前缀)
client.remove_命令(“帮助”)
@客户端事件
_ready()上的异步定义:
打印(“就绪”)
@client.command()
异步def垃圾邮件(ctx,id1:int,num:int):
user=client.get\u用户(id1)
等待ctx.send(f'开始ping{user.name}{num}次')
对于范围内的i(num):
等待用户发送(f“”)
等待ctx.send(f'Finished{num}pings for{user.name}')
client.run(令牌)
昨天它运转良好,但今天由于某种原因它坏了。 如何修复它?

顺便说一下,我在Heroku上托管了它

您可以为此使用转换器:

@client.command()
async def spam(ctx, user: discord.User, num: int):
    await ctx.send(f'Started pinging {user.name} {num} times.')
    for i in range(num):
        await user.send(f'<@{str(id1)}>')
    await ctx.send(f'Finished {num} pings for {user.name}')

有关
意图的如何和为什么的更多信息,请参见相关文档。您还需要在bot的特权意图页面上启用
成员
,这在链接的API文档中也有解释。

我不想ping他们,这就是问题所在。另外,我完全忘记了意图。仍然可以在没有ping的情况下工作,我只是说,如果你想这样做,它也可以工作,直到出现错误,排队等待ctx.send(f'startedping{user.name}{num}次),并且你已经修复了所有意图并更新了dpy版本?是的,需求声明它需要discord.py,所以我把它做成了最新的版本,并且我确定了它的意图
intents = discord.Intents.default()
intents.members = True
client = commands.Bot(command_prefix=prefix, intents=intents)