API бота Telegram - Как очистить pending_update_count - PullRequest
0 голосов
/ 11 мая 2018

я разрабатываю бота для телеграмм, используя codeigniter + PHP для ответа на запрос пользователя, и с сегодняшнего утра он перестает работать, и pending_update_count: 210 и увеличивается ...
Мой вопрос: как мы можем очистить счетчик ожидающих?

что я попробую:
1. сбросьте webhook и установите его снова => это не работает, pending_update_count все еще не очищено
2. используя контроллер, который ничего не делал (посмотрите мой кодниже) => это также не работает, pending_update_count все еще не очищено

, и это мой код, который ничего не делает

class index extends CI_Controller {

function __construct() {
    parent::__construct();

}

public function index() {
    echo('halooo');
    $result = 'ok';
    return $result;
}
}

и так я обычно обрабатываю сообщение от бота telegram

class index extends CI_Controller {

function __construct() {
    parent::__construct();

}

public function index() {
    $content = file_get_contents("php://input");
    $update = json_decode($content, true);
    $chatID = $update["message"]["from"]["id"];     

    $strcmd = trim($update["message"]["text"]);     

    $strMsg = $this->process($strcmd); //process

    $sendto =API_URL."sendmessage?chat_id=".$chatID."&sendmessage?text=".$strMsg."";
    file_get_contents($sendto);
}   
}           

я смотрю эти вопросы в stackoverflow, но это не помогло:
1. Очистить "pending_update_count" в Telegram Bot
2. очистить pending_update_count в TelegramBot

1 Ответ

0 голосов
/ 14 мая 2018

хорошо, мне удалось решить мою проблему, и я опубликую ее здесь на случай, если кому-то это понадобится ...
Прежде чем я опубликую свое решение, в этой проблеме есть что-то странное, обычно
, если pending_update_count> 0, это означает, что что-то не так с нашим исходным кодом,
у нас где-то есть ошибка, которая была вызвана чем-то в нашем исходном коде ...

, и бот telegram будет ее обрабатывать, а поскольку это ошибка,
наш PHP не может вернуть статус ok (200) в telegram,
, поэтому telegram будет отправлять его снова и снова и снова ... как если бы у нас были бесконечные циклы ...
и оттуда мы знаем, какую командукоторые вызывают ошибку, и мы можем отследить наш исходный код и исправить его,
и в то же время для pending_update_count (если вам нужно, чтобы он стал 0 быстро), обычно мы можем решить ее с помощью PHP, который ничего не делал,
или вы можете попробовать вернуть статус ok (200), используя эту команду => http_response_code (200),
и не забудьте отследить и исправить ваш исходный код на mТо же самое, ошибка не повторяется;

, но на этот раз она не вела себя так, телеграм бот просто тихий,
она не отправила то же сообщение / команду, которая приведет к тому, что наш исходный код будетошибка как обычно так себя ведет.
как будто наш исходный код не получил обновления от бота telegram.
и использование php, который ничего не делал, также не работает ...

и вот как я это решаю (по совпадению)
поэтому я пытаюсь решить ее, отозвав своего бота (запустить / отозвать в боте папу) и получить новый токен,
, и я обновляю весь свой исходный код, используя новый токен, снова установить webhook,
и используяPHP, который ничего не делал, и внезапно я вижу падение значения pending_update_count ...
и из-за ошибки, которая вызывает это, я все еще не могу найти проблему ...

так, вот мое решение, надеюсь, этоможет помочь кому-то ...

...