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
谁能告诉我哪里出了问题? :(
编辑:您实际使用的是 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
权限,否则会失败。
我对 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
谁能告诉我哪里出了问题? :(
编辑:您实际使用的是 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
权限,否则会失败。