如何获取Discord.py Webhook发送消息的Message ID以实现编辑
解决Discord Webhook发送Embed后获取Message ID的问题
你当前代码中webhook.send()方法默认不会返回发送后的消息对象,因为wait参数默认值是False。要获取消息ID,必须将wait设为True,这样方法会返回完整的Message实例,从中即可提取id属性。
修改后的代码
embed = discord.Embed(title="Post Title") embed.add_field(name="Req Amount", value="100") embed.add_field(name="Return Amount", value="120") webhook = SyncWebhook.partial(1055498127618097174, "prxoD_ZW0vO6ghrwZNhOiwI9AeLBfNYYss6MTLPkjgvAb_B3WJgWNLMMtPWYZ67GTYbn") # 添加wait=True参数,获取发送后的消息对象 sent_message = webhook.send(embed=embed, wait=True) # 提取Message ID message_id = sent_message.id print(f"发送的消息ID: {message_id}")
用获取到的ID编辑消息示例
如果需要后续自动化编辑这条消息,可以使用webhook.edit_message()方法:
# 创建更新后的Embed updated_embed = discord.Embed(title="Updated Post Title") updated_embed.add_field(name="Req Amount", value="150") updated_embed.add_field(name="Return Amount", value="180") # 编辑指定ID的消息 webhook.edit_message(message_id, embed=updated_embed)
注意事项
- 确保你的Webhook拥有对应频道的消息编辑权限
- 如果Webhook关联了特定频道,编辑操作需要在该频道内有效
内容的提问来源于stack exchange,提问作者Average Guy
相关产品推荐
相关产品推荐

