Не удалось получить отметку времени сообщения, опубликованного приложением Slack

Всякий раз, когда мое приложение отправляет эфемерное сообщение на канал Slack (в ответ на запрос пользователя), я не могу получить метку времени ответа моего приложения Slack. Поскольку я хочу удалить это, как только пользователь сделал выбор, используя одну из кнопок. Несмотря на то, что я подписался на событие "message.channels", я не получаю уведомления о своем приложении, когда мое приложение публикует в канале (в ответ на ввод пользователя), поэтому я не могу получить временную метку сообщения который я буду использовать, чтобы удалить его. Все, что мне нужно, это метка времени сообщения, отправленного моим приложением, чтобы я мог удалить его, но я не могу получить метку времени. Пожалуйста помоги!

Например, в приложении Giphy для Slack. Допустим, пользователь вызывает приложение, вызывая "/ giphy [собака]", где "собака" - просто пример поискового запроса. Приложение отвечает отправкой GIF-файла, и пользователь может отправить его, перенаправить на следующий или отменить. Мне нужна аналогичная возможность отмены ответа приложения, но для этого мне нужна временная метка сообщения, поэтому я прошу помощи.

Благодарю.

1 ответ

Решение

Ваш подход не может работать, потому что Slack обрабатывает эфемерные сообщения не так, как "нормальные" сообщения. Они видны только одному пользователю и не могут быть изменены методами API (например, удаление).

Но, конечно, можно заменить эфемерные сообщения. Вот как:

Ваше приложение может просто ответить на интерактивный запрос Slack новым сообщением. Это новое сообщение по умолчанию переопределит исходное сообщение, включая эфемерные сообщения.

Вы можете ответить двумя способами:

  • Прямой ответ на запрос от Slack с сообщением в течение 3 секунд
  • Отправить сообщение response_url из Slack запроса в течение 30 минут.

Смотрите здесь официальную документацию о том, как отвечать на интерактивные сообщения.

Этот подход работает как с интерактивными сообщениями, так и с командами слеша.

Смотрите также этот ответ для аналогичной ситуации.

Другие вопросы по тегам