Как определить, какой вопрос был предложен пользователю с помощью интерактивных сообщений? - PullRequest
0 голосов
/ 25 октября 2018

Я попытался запустить одну из демонстраций, используя slacks apis, специально для интерактивных сообщений.

Я хочу сделать следующее:

  1. задать вопрос пользователю 1
  2. задать вопрос пользователю 2
  3. задать вопрос пользователю 3

Чего я не понимаю, так это как узнать, когда пользователь отвечает на конкретный вопрос?

Скажем, в моей базе данных есть таблица вопросов, в которой я храню вопросы № 1, № 2, № 3 и т. Д.

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

Как мне точно узнать, из какого вопроса возникло интерактивное сообщение?есть ли способ получить вопрос_id в полезной нагрузке?

1 Ответ

0 голосов
/ 25 октября 2018

Стандартный подход для определения того, на какое из ваших интерактивных сообщений ответил пользователь, заключается в использовании callback_id.Вы можете указать его для каждого вложения, содержащего интерактивное сообщение (набор кнопок, меню и т. Д.), И оно будет включено в ответный запрос к вашему приложению.

Вот что говорит документация о callback_id:

Предоставленная строка будет действовать как уникальный идентификатор для набора кнопок во вложении,Оно будет отправлено обратно на ваш URL-адрес действия кнопки сообщения с каждым вызванным действием.Это поле обязательно для заполнения, если вложение содержит кнопки сообщения.Это ключ к идентификации взаимодействия, с которым вы работаете.

Если у вас несколько кнопок, у каждой будет свое имя, которое вы можете использовать, чтобы определить, какая кнопка была нажата (в сочетании с callback_id).

Если вам нужно сохранить больше данных, вы можете использовать this hack .При этом вы можете сохранить question_id непосредственно в свойстве value кнопки (например, в виде строки JSON).

...