Как ждать сообщение от пользователя telegram bot php

176
08 апреля 2019, 05:30

Использую библиотеку https://github.com/irazasyed/telegram-bot-sdk.

Требуется : Что-то на подобии такого примера

bot : Напишите мне ваше имя
User : Oleg
bot : Как ваши дела, Oleg?

Нужно как-то после вопроса бота ждать ответа от пользователя.Как можно извлечь ответ?
Видел похожую тему Как посмотреть кто и что писал в чат боту телеграм? getUpdates выдает только - {"ok":true,"result":[]} но, не совсем понял как это можно сделать через offset.

Answer 1

Требования: - скрипт должен хранить состояние беседы (например, в БД) и идентифицировать это состояние по ID пользователя (назовем это сессией). - у бота должна быть (веб-хука на получение сообщений)

Сначала бот отправляет сообщение с запросом имени пользователю

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

Answer 2

Чтобы получать ответы от пользователя и знать на какой вопрос ответил пользователь, нужно сделать следующее:

  1. В БД сохранить так называемые бот flow. Например:

    1. Как зовут?
    2. Сколько лет, ну и так далее
  2. Когда бот отправил вопрос пользователю записать ID этого вопроса и chatId в базу.

  3. Когда пользователь ответит на вопрос в базе посмотреть какой вопрос задал бот и вуаля.

Текст сообщения пользователя будет в обьекте message.text

Библиотека которую вы используете не совсем подходит к вашей задаче. Она ориентирована на команды боту.

Вот неплохое описание-руководство, которое надеюсь вам поможет https://habr.com/post/347482/

READ ALSO
Установить расширение CURL

Установить расширение CURL

Всем привет, пытаюсь поставить опенкарт себе на локалку, но столкнулся с проблемой что CURL не активирован, в phpini убрал ;, скачал нужные библиотеки

166
Обрезать число до сотых без округления

Обрезать число до сотых без округления

Каким образом обрезать число до сотых, не округляя его?

186
Как реализовать статистику посещений в Laravel?

Как реализовать статистику посещений в Laravel?

Ребят, всех приветствуюВ общем столкнулся с таким вопросом

152