我是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
有人可以告诉我我要怎么做吗? :(
答案 0 :(得分:0)
编辑:您实际上是在使用discord.py-rewrite,所以您需要
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
权限,否则将失败。