Задать вопрос
@sarkis3

API bot TG — Как мне узнать, на какой вопрос ответили?

Здравствуйте. Впервые сталкиваюсь с телеграмм api.


Человек пишет Боту - /start
Бот отвечает - Напиши название своего Города
Человек пишет Боту - Москва
Бот отвечает - Напиши название своей улицы
Человек пишет Боту - Большая садовая


Подскажите, каким образом я могу понять, на какой вопрос отвечает пользователь ?
Т.е как мне присваивать команды каждому вопросу или нужно обязательно кнопки (inline_keyboard) добавлять ?
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
kawabanga
@kawabanga
На уровне бэка добавляете режим ожидания.

Человек пишет Боту - /start

Бот показывает меню, или переходит в режим активации регистрации. Вы на беке записываете, что в течении 1 минуты мы ожидаем от пользователя название города или сервисную команду /start . Причем сервисными командами надо научить бэк сбрасывать ожидание.

Бот отвечает - Напиши название своего Города

Ставим ожидание команды - город.

Человек пишет Боту - Москва
Бот отвечает - Напиши название своей улицы

Переходим в ожидание улицы

Человек пишет Боту - Большая садовая

Ну дальше понятно думаю.

Самый простой способ сделать такое ожидание - это кэширующая функция в вашем фреймворке на 1-2 минуты.
Ответ написан
Комментировать
@alekssamos
Программист любитель
Нужна база данных или какой-нибудь редис. И туда всё писать. У меня есть решение, специально для бесплатных хостингов, просьба профессионалов не критиковать, я знаю.
нажми сюда
И просто по ключу "state".$chat_id записываешь и проверяешь, проверять можешь через switch case
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
По-простому, костыльному, можно предполагать, что очередная реплика пользователя, которая не-команда типа /start (начать сначала) или какой-нибудь /edit (допустим, исправить последний ответ) – это ответ на следующий по порядку вопрос. В базе данных сохраняйте под id пользователя его ответы, заполняя каждый раз следующий пустой вопрос, например. Эт. совсем упрощенно-колхозно.

Для адреса, наверное, можно предлагать не вводить название, а тыкнуть точку на карте — прислать location, как вариант.

По-крутому, можно сделать нормальное веб-приложение, хороший интерфейс, форму с полями, валидацией и подсказками. См. WebApp в Telegram.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы