从特定频道中的特定消息中删除所有反应

Posted

技术标签:

【中文标题】从特定频道中的特定消息中删除所有反应【英文标题】:Removing all reaction from a specific message in a specific channel 【发布时间】:2021-04-21 08:38:24 【问题描述】:
// remove reactions from sign up message
    command(client, 'noreactions', message => 
        client.channels.cache.get(channelBotTest).fetch(messageWSSignUp).reactions.removeAll().catch(error => 
            console.error('Failed to clear reactions: ', error)
        );
    )

到目前为止,这是我的代码。 我希望能够在私人频道中运行一个命令,该命令将删除特定频道中特定消息的所有反应。

收到此错误: TypeError:无法读取未定义的属性“removeAll”

我不确定是否也需要定义频道?

请帮忙。

谢谢

【问题讨论】:

【参考方案1】:

fetch() 返回 Promise 而不是立即返回值。要从 Promise 中获取消息对象,您可以使用 .then() 回调或 await 关键字。

command(client, 'noreactions', message => 
    client.channels.cache.get(channelBotTest).fetch(messageWSSignUp).then(fetchedMessage => 
        fetchedMessage.reactions.removeAll().catch(error => 
            console.error('Failed to clear reactions: ', error)
        )
    ).catch(err => console.log('failed to fetch the message'))
)

【讨论】:

谢谢!如果消息是嵌入的,这是否同样有效?如果没有,我应该如何改变它? 按原样,我在控制台上收到“无法获取消息”。

以上是关于从特定频道中的特定消息中删除所有反应的主要内容,如果未能解决你的问题,请参考以下文章

如何从特定频道狙击消息(discord.py)

如何制作一个删除消息并根据反应将其发布到另一个频道的机器人

如何使用特定的 webhook 使机器人对特定频道下的消息做出反应

如何让机器人在收到来自某个消息的反应后将消息发送到特定频道

Python:通过 cog 和后台任务向 Discord 中的特定频道发送消息

在特定角色通道中发送消息几秒钟后,尝试删除通知正在添加角色的消息