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

Телеграм Бот на PHP отправляет 3 сообщения в ответ в место 1. Поможете?

Я создал Телеграм бота который отправляет пользователю его-же сообщение но он в место одного отправляет 3 сообщения.
Код:
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

$mess = 'https://api.telegram.org/bot***BOT_TOKEN***/getUpdates';
$com = file_get_contents($mess);
$com1 = json_decode($com);
$mess1 = end($com1->result)->message->message_id;
$mess2 = $mess1;
while(true){
$com = file_get_contents($mess);
$com1 = json_decode($com);
$mess1 = end($com1->result)->message->message_id;
if($mess2 != $mess1){
    //end($com1->result)->message->chat->id
    $send = 'https://api.telegram.org/bot***BOT_TOKEN***/sendMessage?chat_id=' . end($com1->result)->message->chat->id . '&text=' . end($com1->result)->message->text;
    file_get_contents($send);
    $mess2 = $mess1;
}
}

?>
  • Вопрос задан
  • 191 просмотр
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Wacdis
@Wacdis
PHP, Python, GO, Rust, NodeJS, SOA/MSA
А зачем читать несколько сообщений подряд? Webhook URL вызывается каждый раз, как вам приходит сообщение.
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

$mess = 'https://api.telegram.org/bot***BOT_TOKEN***/getUpdates';
$com = file_get_contents($mess);
$com1 = json_decode($com);
$mess = end($com1->result)->message;
if (is_numeric($mess->chat->id) {
	$send = 'https://api.telegram.org/bot***BOT_TOKEN***/sendMessage?'
		.'chat_id=' . $mess->chat->id
		.'reply_to_message_id=' . $mess->id
		.'&text=' . $mess->text;
	file_get_contents($send);
}
Ответ написан
Ваш ответ на вопрос

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

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