dimitrius86
@dimitrius86
Сисадмин. Немного программирую.

API Telegram Bot. Как обрабатывать ответы от пользователя?

Всем привет!

Подскажите, пожалуйста, как обрабатывать ответы от пользователя? Пользуюсь вот этой библиотекой: https://github.com/TelegramBot/Api

Вывожу кнопки с помощью ReplyKeyboardMarkup.

Есть "Записаться", по нажатию которой появляется сообщение "Записаться" и следом "Введите имя: "
Но как обработать введенное пользователем имя ?? Ниже коод:

$bot = new \TelegramBot\Api\Client($TOKEN);

       $bot->command("start", function ($message) use ($bot) {

        $keyboard = new \TelegramBot\Api\Types\ReplyKeyboardMarkup([[
            ["text" => "О клинике"],
            ["text" => "Записаться"]
        ]], false, true);
  $bot->sendMessage($message->getChat()->getId(), "Выберете на кнопках нужную информацию ", false, null, null, $keyboard);
});

$bot->on(function($Update) use ($bot){

    $message = $Update->getMessage();
    $mtext = $message->getText();
    $chatId = $message->getChat()->getId();

    if (mb_stripos($mtext, "Записаться") !== false){

        $keyboard = new \TelegramBot\Api\Types\ReplyKeyboardMarkup([[
            ["text" => "О клинике"],
            ["text" => "Записаться"]
        ]], true, true);

      $bot->sendMessage($chatId, "Введите Ваше имя: ", false, null, null, $keyboard);

    }, function($message) use ($name){
  return true;
});
    $bot->run();


Писать дополнительное условие в блоке метода on не работает, ровно как и в этом if (mb_stripos($mtext, "Записаться") !== false){

Как всё таки, получить от пользователя текст ИМЕННО после "Введите Ваше имя: " которое появилось после нажатия на кнопку "Записаться" ?
  • Вопрос задан
  • 1776 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Отмечаете у себя в БД, что в диалоге с данным пользователем был задан конкретный вопрос. При приходе от пользователя сообщения проверяете, если до этого был задан вопрос, то считаете сообщение ответом на него. Затем сбрасываете признак заданного вопроса в БД.
И подучите русский язык. "Выберете на кнопках нужную"... Во-первых - выберите. Во-вторых нужную кому?, кого?, что?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@snake_jan
такая же проблема :( не разобрались случайно?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы