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

Rest Api telegram BOT как отследить на какое сообщение ответил пользователь?

Вопрос по разработке бота для телеги. Допустим я отправляют пользователю сообщение с предложением ввести имя. Пользователь присылает сообщение со своим именем. Как мне на стороне сервера понять, что это за сообщение (на какой мой вопрос ответил пользователь)?
Например, в viber api есть при отправке сообщения параметр "tracking_data" (Allow the account to track messages and user’s replies. Sent tracking_data value will be passed back with user’s reply).
А как подобное реализовано в телеграм апи бота?
Заранее благодарен за ответ!
  • Вопрос задан
  • 1522 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
Вы не указали на каком ЯП, но в общем случае смотрим АПИ
у объекта message , если это был ответ на другой message будет и свой ИД и вложенный объект message, на который ответили.
вот пример сообщения , запоминаем "message_id": 1165934,
{
 "update_id": 933188596,
 "message": {
  "message_id": 1165934,
  "from": {
   "id": 534905,
   "is_bot": false,
   "first_name": "Aleksandr",
   "last_name": "Shabelsky",
   "username": "shabelsky",
   "language_code": "ru"
  },
  "chat": {
   "id": 534905,
   "first_name": "Aleksandr",
   "last_name": "Shabelsky",
   "username": "shabelsky",
   "type": "private"
  },
  "date": 1661801219,
  "text": "тест сообщения"
 }
}


а вот при ответе на него

{
 "update_id": 933188598,
 "message": {
  "message_id": 1165936,
  "from": {
   "id": 534905,
   "is_bot": false,
   "first_name": "Aleksandr",
   "last_name": "Shabelsky",
   "username": "shabelsky",
   "language_code": "ru"
  },
  "chat": {
   "id": 534905,
   "first_name": "Aleksandr",
   "last_name": "Shabelsky",
   "username": "shabelsky",
   "type": "private"
  },
  "date": 1661801228,
  "reply_to_message": {
   "message_id": 1165934,
   "from": {
    "id": 534905,
    "is_bot": false,
    "first_name": "Aleksandr",
    "last_name": "Shabelsky",
    "username": "shabelsky",
    "language_code": "ru"
   },
   "chat": {
    "id": 534905,
    "first_name": "Aleksandr",
    "last_name": "Shabelsky",
    "username": "shabelsky",
    "type": "private"
   },
   "date": 1661801219,
   "text": "тест сообщения"
  },
  "text": "тест ответа на сообщение"
 }
}

как видно в блоке reply_to_message есть "message_id": 1165934 , ссылка на отвеченное сообщение
Ответ написан
Ваш ответ на вопрос

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

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