Discord.py 在不使用添加字段的情况下发送嵌入

Discord.py sending an embed without the use of add fields

我正在尝试从用户那里获取消息,然后将其发送到特定的文本频道。该消息应嵌入。但我不喜欢你有一堆字段时的样子,我希望 discord.Embed() 中的描述包含文本内容。但它给了我一个错误 TypeError: Object of type Message is not JSON serializable

这是我的代码:

class Changelog(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_ready(self):
        print('Changelog is loaded')

    @commands.command()
    async def changelog(self, ctx):
        changelog_channel = self.client.get_channel(759547196433104956)
        await ctx.send("`Message: `")
        message = await self.client.wait_for('message', check=lambda message: message.author == ctx.author, timeout=300)
        embed = discord.Embed(title="Changelog", description=message, color=0)
        await changelog_channel.send(embed=embed)


def setup(client):
    client.add_cog(Changelog(client))

你没有收到这个错误是因为你没有添加字段,而是因为你试图在描述中放置一个 message 实例,而你应该放置该消息的 content 在那里。描述只能取strings作为它的值。

embed = discord.Embed(title="Changelog", description=message.content, color=0)

wait_for("message") returns 一个 discord.Message 实例。 Message 包含该消息的内容、ID、作者、频道以及更多内容。如果只想获取用户发送的文本,则需要 content 属性。

有关 Message 可以做什么的更多信息,请参见 API docs