Пишу простого телеграм бота с использованием long polling. Проблема в том, что телеграм каждый раз присылает одни и те же обновления, которые он уже присылал, тут где то писали, что чтобы они считались старыми, бот должен на них отвечать, но это не помогло, и он просто бесконечно шлет сообщения в ответ на старый апдейтс. Хабр что делать?
Код бота
<?php
require 'Config.php';
require 'utils/API.php';
$telegram = new Telegram(Config::BOT_TOKEN);
while (true) {
sleep(2);
$updates = $telegram->getUpdates(); // Получаем обновление, методом getUpdates
foreach ($updates as $update){
if (isset($update->message->text)) { // Проверяем Update, на наличие текста
$text = $update->message->text; // Переменная с текстом сообщения
$chat_id = $update->message->chat->id; // Чат ID пользователя
$first_name = $update->message->chat->first_name; //Имя пользователя
print_r($chat_id);
if ($text == '/start') { // Если пользователь подключился в первый раз, ему поступит приветствие
$telegram->sendMessage($chat_id, 'Привет'. ' ' . $first_name . '!');
} else {
$telegram->sendMessage($chat_id, $first_name . '! Как дела?' );
}
}
}
}
?>
Код класса Telegram
<?php
class Telegram {
public $token;
public function __construct($token)
{
$this->token = $token;
}
private function curl_get($url, $params) {
$url = $url . "?" . http_build_query($params);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
curl_close($curl);
return json_decode($response);
}
private function api($method, $params = []) {
$res = self::curl_get("https://api.tlgr.org/bot".$this->token ."/". $method, $params);
return $res->result;
}
public function sendMessage($chat_id, $text) {
return $this->api('sendMessage', [
'chat_id' => $chat_id,
'text' => $text
]);
}
public function getUpdates($offset) {
return $this->api('getUpdates', ['offset' => $offset]);
}
}
?>