Discord Bot销信息

时间:2019-02-10 19:10:17

标签: python documentation discord discord.py

我是Discord bot和python的新手,所以我在理解我要去哪里出错时遇到了一些麻烦。基本上,我想让我的机器人固定一条消息。我找到了一个python代码的文档,其中说要使用pin_message(),所以我有:

if "pinm()" == message.content.lower():
   #to pin a message
   message.channel.pin_message(messageID)

但是出现以下错误AttributeError:'TextChannel'对象没有属性'pin_message'

当我查看Discord文档时,它说 PUT /channels/{channel.id}/pins/{message.id} 我真的不明白如何将其转换为代码,所以我有这样的东西:

    if "pinm()" == message.content.lower():
        #to pin a message
        allPins = message.channel.pins(messageID)

但是我得到错误pins()接受1个位置参数,但给出了2个。 我关注的来源是

https://discordapp.com/developers/docs/resources/channel#add-pinned-channel-message

https://discordpy.readthedocs.io/en/latest/api.html#message

有人可以告诉我我要怎么做吗? :(

1 个答案:

答案 0 :(得分:0)

编辑:您实际上是在使用,所以您需要

msg_to_pin = await message.channel.get_message(int(messageID))
await msg_to_pin.pin()

原文:

您需要使用Client.pin_message,并传递Message对象(而不是id)。您通常已经具有消息对象,但是否则必须使用Client.get_message,这要求您还必须知道消息所在的频道。

msg_to_pin = await client.get_message(message.channel, messageID)
await client.pin_message(msg_to_pin)

确保您的漫游器具有manage_messages权限,否则将失败。