Как получить конкретное сообщение по идентификатору (пробовал fetch_message(id))

@client.command()
async def edit(ctx, message_id, *, new_message) :
    channel, chan, guild = None, list_channels("saved_channels.csv"), ctx.guild.id
    message = await fetch_message(message_id)
    await message.edit(new_message)
    embed=discord.Embed(color=0x00ca1f)
    embed.add_field(name="Success :white_check_mark:", value=f"Le message a bien été édité dans {message.channel.mention}", inline=False)
    await ctx.send(embed = embed)

Я пытаюсь отредактировать конкретное сообщение, которое мой бот отправил на другом канале, взяв идентификатор сообщения с fetch_message() (предположительно, в новом API Discord), но это дает мне NameError: name 'fetch_message' is not defined... я что-то сделал не так?


person Ladnewgg    schedule 10.05.2020    source источник


Ответы (1)


Вам нужно указать канал, с которого бот должен редактировать сообщение.

Например,

channel = client.get_channel(channel_id)
message = await channel.fetch_message(message_id)

Также при редактировании сообщения нужно указать содержание следующим образом:

await message.edit(content=new_message)
person Finlay    schedule 10.05.2020