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

Как ответить webhook Telegram 'ожидайте' при отправке сообщения в методе /sendMessage?

У меня бот, который при отправке пользователем сообщения отвечает на сообщение. Связь сервера и чата Telegram, в который задаются вопросы, настроена вебхуком. До отправки ответа бот парсит информацию, с проксированием, обработкой. В результате бот виснет, потом начинает присылать много правильных, но повторяющихся сообщений.

В WebHookInfo ошибка Read Time Expired.

$urlQuery = "https://api.telegram.org/bot" . $token . "/sendMessage?chat_id=". $chatId ."&text=" . $textMessage . "&drop_pending_updates=true";

В интернете прочитал, что можно в методе sendMessage, при запуске index.php с каждой отправкой хуки сказать "Ожидайте" Telegram API. Сохранить ID cообщения отправить сообщение когда парсер полностью отработает. На этом у меня затык. В документации Telegram по ботам не нашел как сделать, серфинг тоже не дал результата... (
Может быть, кто-то знает, как это делать?
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В течение 60 секунд после запроса на webhook вы должны отправить ответ с кодом 200, иначе телеграм повторит запрос.
Соответственно, если вашему боту нужно более 60 секунд, то лучшим вариантом будет помещение запроса в очередь (например, RabbitMQ) и ответ "Запрос принят, идёт обработка" с кодом 200 Ok. Затем отдельным консольным скриптом обработка запроса из очереди и отправка результата пользователю.
Ответ написан
@Nc_Soft
Если нет надобности городить очереди, то можно посмотреть в сторону fastcgi_finish_request
Ответ написан
Ваш ответ на вопрос

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

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