python - Discord Bot pin 消息
问题描述
我对 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)
但我得到错误 pin() 需要 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)。您通常已经拥有 message 对象,否则您将不得不使用Client.get_message
,这要求您还知道消息所在的频道。
msg_to_pin = await client.get_message(message.channel, messageID)
await client.pin_message(msg_to_pin)
确保您的机器人具有manage_messages
权限,否则将失败。
推荐阅读
- .htaccess - .htaccess 将多个不同的 "?p=" 重定向到特定页面
- angular - 如何将缓存添加到 Observable、mat-autocomplete
- swift - 在 swift 中选择时,节标题背景颜色会发生变化
- scrapy - Scrapy spider 在不同的环境中表现不同
- javascript - 如何在 .JSFF 文件中使用 javascript 添加数字时钟?
- ios - iOS 14 beta 允许定位一次去 locationManager didFailWithError
- php - A Database Error Occurred Error Number: 1048 Column 'gambar' cannot be null , 在codeigniter中上传文件
- c# - 包含多个属性的位置
- javascript - 使用 CSS 显示图像和发光
- configuration - Nestjs ConfigModule:在配置对象中设置/覆盖值