Как объединить команды слеша, кнопки и диалоги для меню? - PullRequest
0 голосов
/ 10 ноября 2018

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

Пример:

enter image description here

  • Первая кнопка позволяет пользователю закрыть меню
  • Вторая кнопка позволяет пользователю начать действие
  • Третья кнопка позволяет пользователю открыть диалоговое окно для изменения опции.

После того, как пользователь отправляет диалог, я хочу обновить сообщение меню, чтобы отразить изменения, сделанные в диалоге.

Однако после того, как пользователь отправил диалог, я больше не могу обновлять меню сообщений, отвечая на ответ Slack, как и раньше.

Как я могу обновить сообщение меню с изменениями?

1 Ответ

0 голосов
/ 10 ноября 2018

Чтобы сохранить соединение с начальной командой косой черты, необходимо сохранить response_url последнего интерактивного действия перед открытием диалога.

В этом примере это будет запрос интерактивного действия, инициированный после нажатия кнопки «Опции».Это response_url позволяет без проблем продолжить диалог, который был начат с начальной командой косой черты.

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

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

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

...