@CapitanFreeloader

Как после getUpdates установить сообщения прочитанными?

Получаю сообщения по url, как после их получения ставить им статус прочитанных, что бы они не приходили заново?
Гугл ответа не дал
Апи телеграма не совсем ясно
  • Вопрос задан
  • 1805 просмотров
Пригласить эксперта
Ответы на вопрос 3
muhammad_97
@muhammad_97
PHP-разработчик
Используйте getWebhookUpdates
Ответ написан
VSeryoga
@VSeryoga
Добавьте getUpdates?offset=[update_id]
update_id - из ответа, можно хранить в файле или БД, обновляя при его изменении

сообщения буду приходить только те у кого update_id > заданного
Ответ написан
Комментировать
BoShurik
@BoShurik
Symfony developer
Ничего хранить не надо. Я делал так
/**
 * @return void
 */
public function processUpdates()
{
    $updates = $this->api->getUpdates();
    $lastUpdateId = null;
    foreach ($updates as $update) {
        $lastUpdateId = $update->getUpdateId();
        $this->processUpdate($update);
    }
    if ($lastUpdateId) {
        $this->api->getUpdates($lastUpdateId + 1, 1);
    }
}

  1. Получаем список сообщений, сохраняя последний полученный id
  2. Обрабатываем их
  3. Еще раз получаем список сообщений, указав смещение в "{последний полученный id} + 1"
  4. Следующее получение списка сообщений без параметров будет выводить только неполученные до этого сообщения
Ответ написан
Ваш ответ на вопрос

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

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