Discord Bot pin 消息

Discord Bot pin message

我对 discord bot 有点陌生,python 所以我 运行 有点难以理解我哪里出错了。基本上我想让我的机器人固定一条消息。我找到了 python 代码的文档,其中说要使用 pin_message() 所以我有:

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

但我收到以下错误 AttributeError: 'TextChannel' object has no attribute '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

谁能告诉我哪里出了问题? :(

编辑:您实际使用的是 ,因此您需要

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 权限,否则会失败。