如何使webhook发送带有用户头像和昵称的消息执行命令discord.py

如何使webhook发送带有用户头像和昵称的消息执行命令discord.py,discord.py,Discord.py,我希望当我运行ordinarie命令时,通过添加化身和昵称来获得此结果,从而更改机器人的化身和昵称 编辑1: 我意识到我必须使用webhooks才能做到这一点,我做了几次搜索,但从未接触过webhooks。 我怎么办?我将下面的代码留给您,让您知道我是否必须在该命令内部或“外部”工作 编辑2: 我尝试过做webhook.send,但我不知道如何激活webhook!建议 编辑3: 我最终创建了一个webhook,但当我希望bot添加反应时,它给了我discord.ext.commands.err

我希望当我运行
ordinarie
命令时,通过添加化身和昵称来获得此结果,从而更改机器人的化身和昵称

编辑1: 我意识到我必须使用webhooks才能做到这一点,我做了几次搜索,但从未接触过webhooks。 我怎么办?我将下面的代码留给您,让您知道我是否必须在该命令内部或“外部”工作

编辑2: 我尝试过做
webhook.send
,但我不知道如何激活webhook!建议

编辑3: 我最终创建了一个webhook,但当我希望bot添加反应时,它给了我
discord.ext.commands.errors.CommandInvokeError:Command引发了一个异常:AttributeError:“NoneType”对象没有属性“add\u reaction”。
我试图通过执行
print(message.id)
查看是否找到了消息的id,但它给了我相同的错误,因此问题是,尽管我在使用
webhook.send之前使用了
I use message=它并没有像我使用
频道那样计算它。先发送
。我该如何解决? 下面我已经更新了代码

代码:

@client.command(别名=[“Ordinarie”、“Ordinarie”、“ord”、“ord”])
@命令。具有任何角色(690951634183782461、6909548667346243624、6909566686147453048、690906692051705896)
异步定义顺序(ctx,*,建议):
等待ctx通道净化(限值=1)
通道=客户端。获取通道(637761152654508062)
如果ctx.channel.id==channel.id:
diocane=ctx.author
favore=获取表情符号(ctx.guild,“Favorevole”)
contro=get_表情符号(ctx.guild,“Contrario”)
flore=get_emoji(ctx.guild,“Astenuto”)
WEBHOOK_URL=”https://discordapp.com/api/webhooks/765735283831603201/x2i974bNeGwUq13I5p0WmGaviVrkkhsX8IIcQTgnTSr4F9vOFzEi9bK19pD6Bi_6ogos"
与ClientSession()作为会话异步:
webhook=discord.webhook.from_url(webhook_url,adapter=discord.asynchwebhookadapter(会话))
message=wait webhook.send(content=f“**Proposta Ordinaria di{diocane.notice}**\n\n{Proposta}\n\nVOTA A FAVORE[{FAVORE}]\nVOTA CONTRO[{CONTRO}]\nASTIENITI[{flore}]”,username=ctx.author.name,avatar\u url=ctx.author.avatar\u url)
等待消息。添加反应(优惠)
等待消息。添加反应(控制)
等待消息。添加反应(flore)
等待异步睡眠(10)
message=等待webhook.fetch\u消息(message.id)
等待消息。删除\u反应(偏好、客户、用户)
等待消息。删除\u反应(控制、客户端、用户)
等待消息。移除反应(flore,client.user)
thumbsup=get(message.reactions,emoji=favore)
thumbsdown=get(message.reactions,emoji=control)
中立=获取(message.reactions,表情符号=flore)
如果thumbsup.count>thumbsdown.count:
等待webhook.send(content=f“**Risultati della proposta di{diocane.notice}**:\n{thumbsup.count-1}一个人情,{thumbsdown.count-1}控制e{neutral.count-1}astenuti.\nLa proposta di{diocane.notice}提及}批准与应用程序相关的有机物化身。”,用户名=ctx.author.name,头像url=ctx.author.avatar\url)
WEBHOOK_URL=”https://discordapp.com/api/webhooks/765738529803468820/QyQ_zXzEF_q2EzH1ijTVBZY5L-hxru7lR1EsFoL7L1b5IdbpQe7uiQjVjcBET77C0wjS"
与ClientSession()作为会话异步:
webhook=discord.webhook.from_url(webhook_url,adapter=discord.asynchwebhookadapter(会话))
等待webhook.send(content=proposta,username=ctx.author.name,avatar\u url=ctx.author.avatar\u url)
返回
如果thumbsup.count
以下是一个示例,说明如何在名称和化身更改为被调用用户的情况下使用,您应该能够根据自己的需要对其进行修改:

WEBHOOK_URL = "<redacted>"

from aiohttp import ClientSession

@client.command()
async def test(ctx, *, message: str):
    async with ClientSession() as session:
        webhook = discord.Webhook.from_url(WEBHOOK_URL, adapter=discord.AsyncWebhookAdapter(session))

        await webhook.send(content=message, username=ctx.author.name, avatar_url=ctx.author.avatar_url)

以下是一个示例,说明如何在名称和化身更改为被调用用户的情况下使用,您应该能够根据自己的需要对其进行修改:

WEBHOOK_URL = "<redacted>"

from aiohttp import ClientSession

@client.command()
async def test(ctx, *, message: str):
    async with ClientSession() as session:
        webhook = discord.Webhook.from_url(WEBHOOK_URL, adapter=discord.AsyncWebhookAdapter(session))

        await webhook.send(content=message, username=ctx.author.name, avatar_url=ctx.author.avatar_url)

你只能编辑昵称,因为《阿凡达》还不可能使用代码,你需要去discord开发者门户网站更改机器人的“阿凡达”。我发现需要Webhook来完成我想做的事情,但我不知道它们的用途。你只能编辑昵称,因为《阿凡达》还不可能使用代码,你需要转到discord开发者门户来更改机器人的化身。我发现Webhook需要做我想做的事情,但我不知道它们的用途。部分问题已经解决,但现在我有了另一个问题。当我想让它添加反应()时,它会给我这个错误()。据我所知,作为一个webhook,它需要以不同的方式处理,但除了
消息之外,没有其他方法可以添加反应。add_reaction
。我怎么办?我找到了一种使用多个频道的方法,但我想知道一些事情。是否可以让bot直接创建webhook?通过这种方法,我可以从服务器创建Webhook,但是如果我想