Как итерироваться по массиву updates User Long Poll API?

Создаю бота вконтакте. Использую User Long Poll API для получения сообщений от пользователя. Проблема возникает, когда боту пишет несколько человек(он не успевает всем отвечать, поскольку в коде программы обрабатывает только одно сообщение в массиве updates, а должен вроде как итерироваться по всем. Когда приходит несколько сообщений сразу, в массиве updates появляется дополнительный массив. Но в нем не отображается сообщение пользователя, которое как раз и было ПОТЕРЯНО. Приходит ответ по типу {"ts":1745339246,"updates":[[80,1,0],[12,///ID///,2] <-(ТУТ НЕТУ ТЕКСТА СООБЩЕНИЯ),[4,886,17,///ID///,1595087289,"ТЕКСТ СООБЩЕНИЯ",{"title":" ... "}]]<-(ТУТ ЕСТЬ ТЕКСТ СООБЩЕНИЕ)}. Как мне достать из первого массива потерянное сообщение, на которое не ответил бот? Извиняюсь за длинный текст.


Ответы (1 шт):

Автор решения: hwak

В структуре ответа VK первая цифра - это код события.

Когда пришло новое сообщение - код события = 4.

Код 11 - прочий служебный код, который вас не должен интересовать.

Я бы порекомендовал в вашей ситуации предварительно отфильтровать массив updates так, чтобы там остались только события с кодами, которые вас интересуют (4) и ваш алгоритм будет работать, как ожидается.

Так же рекомендую ознакомиться с документацией по API: https://vk.com/dev/using_longpoll_2?f=3.%2B%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0%2B%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9

→ Ссылка