discord.py从消息链接获取消息对象

时间:2020-04-14 15:36:04

标签: python discord.py

我想知道是否有一种方法可以使用Python Discord机器人从消息链接(https://discordapp.com/channels/guild_id/channel_id/message_id)中获取消息,如果可以,怎么办。 我可以想到一种使用

的方法
link = 'https://discordapp.com/channels/guild_id/channel_id/message_id'.split('/')
message = await self.bot.get_guild(int(link[-3])).get_channel(int(link[-2])).fetch_message(int(link[-1]))

但是我想知道是否还有更直接的方法。 预先感谢!

1 个答案:

答案 0 :(得分:0)

为此,您首先应该通过执行以下操作获得行会,频道和消息ID:

server_id = int(link[4])
channel_id = int(link[6])
msg_id = int(link[5])

接下来,您应该使用漫游器获取公会对象,然后使用公会对象获取文本通道对象,最后使用文本通道对象获取消息对象。像这样:

server = client.get_guild(server_id)
channel = server.get_channel(channel_id)
message = await channel.fetch_message(msg_id)

discord.py get_guild()参考:https://discordpy.readthedocs.io/en/latest/api.html#discord.Client.get_guild

discord.py get_channel()参考:https://discordpy.readthedocs.io/en/latest/api.html#discord.Guild.get_channel

discord.py fetch_message()参考:https://discordpy.readthedocs.io/en/latest/api.html#discord.abc.Messageable.fetch_message