Как сделать прохождение бота с тестом удобным для пользователя.
Всем, кто работает с чат-ботами в ВК, известна такая (иногда очень бесячая😤) особенность этой соцсети, как дублирование текста с нажатой пользователем кнопки в диалог, то есть выглядит это как входящее сообщение от пользователя и остается в истории переписки. А когда делаешь психологические тесты, в которых бывает по 50 вопросов, это сильно засоряет переписку.
Приходит первое сообщение с утверждением, к нему 5 кнопок-callback, после нажатия на одну из них в соответствующую переменную записывается определенное числовое значение (в зависимости от ответа), ответ пользователя с кнопки сохраняется в отдельную переменную, а далее наше первое сообщение редактируется, то есть как бы заменяется на новое, в котором нет кнопок и добавлена строка с ответом пользователя (чтобы по истории переписки можно было увидеть свои ответы).
Дальше приходит сообщение со вторым утверждением, где все работает по такому же принципу.
Что внутри блока сообщения «Утверждение 1»:
Выбираем тип кнопки — callback, пишем текст, тумблер со сбросом загрузки оставляем выключенным, поле для текста уведомления — пустым (оно нам тут не нужно, так как сообщение заменится полностью на новое)
Чтобы наше сообщение из блока «Утверждение 1» отредактировалось, в расширенных настройках следующего блока сообщения (Шаг 10), нужно выставить следующее:
Открываем расширенные настройки блока сообщения, листаем вниз, в разделе «Какое действие должен выполнить этот блок» меняем «отправить сообщение» на «отредактировать сообщение из шага» и далее выбираем нужный шаг (в нашем случае шаг «Утверждение 1»).
И так повторить для всех последующих утверждений…
Со стороны пользователя это выглядит так (см. скрины👇):
Да, в ВК появляется (ред.) внизу отредактированного сообщения, не красиво, но в целом не мешает, можно не обращать внимания…
В итоге у меня получился вот такой красивый бот на 267 шагов :))
Кто хочет проверить свой уровень самооценки, или просто посмотреть, как со стороны пользователя выглядит этот тест, то пишите слово СТАРТ вот сюда
