Spring Boot Slack Bot - 允许删除消息

问题描述 投票:1回答:1

如何允许使用Spring Boot实现的Slack Bot删除消息?

Spring Boot Slack Bot使用simple-slack-api。发送deleteMessage时,收到的回复是:cant_delete_message。所以授权问题。

Slack Bot代码是:

SlackSession session = SlackSessionFactory.createWebSocketSlackSession(slackToken);
session.connect();
SlackMessagePostedListener messagePostedListener = new SlackMessagePostedListener() {
    @Override
    public void onEvent(SlackMessagePosted event, SlackSession session) {
        if (session.sessionPersona().getId().equals(event.getSender().getId())) {
            return; // don't react on slack bot's own replies
        }
        SlackChannel channelOnWhichMessageWasPosted = event.getChannel();
        String messageContent = event.getMessageContent();
        SlackUser messageSender = event.getSender();
        if( messageContent.startsWith( "secret")) {
            session.sendMessage(event.getChannel(), "pssst: " + messageContent);
            SlackMessageHandle handle = session.deleteMessage( event.getTimeStamp(), channelOnWhichMessageWasPosted);
            logger.info( "Delete result : " + ((ParsedSlackReply) handle.getReply()).getErrorMessage());
        } else { ... }
    }
};
session.addMessagePostedListener(messagePostedListener);
spring-boot slack slack-api
1个回答
1
投票

通常,用户只能删除自己的消息,而不能删除其他消息。管理员和所有者除外。可以在工作区设置中设置此行为。

如果您想确定您的机器人可以删除其他人的消息,请确保由管理员用户安装,然后使用他的访问令牌(而不是机器人令牌)。

© www.soinside.com 2019 - 2024. All rights reserved.