@rocket-8

Telegram Api возвращает одно и то же в getUpdates, что делать?

Пишу простого телеграм бота с использованием 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]);
  }
}
?>
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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