Spring Boot Slack Bot - разрешить удаление сообщений - PullRequest
1 голос
/ 27 апреля 2019

Как я могу позволить Slack Bot, реализованному в Spring Boot, удалять сообщение?

Spring Boot Slack Bot использует простой-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);

1 Ответ

1 голос
/ 27 апреля 2019

Обычно пользователи могут удалять только свои собственные сообщения, но не сообщения других. За исключением администраторов и владельцев. Это поведение можно настроить в настройках рабочего пространства.

Если вы хотите быть уверены, что ваш бот может удалить сообщение от других, убедитесь, что оно установлено пользователем-администратором, а затем используйте его токен доступа (не токен бота).

...