Author Topic: Протокол VKontakte  (Read 1374671 times)

0 Members and 7 Guests are viewing this topic.

Offline Elzor

Re: Протокол VKontakte
« Reply #1875 on: 03 06 2025, 11:51:42 »
Да логи запросов в нетлоге, толку то с них? Насколько я ситуацией владею, девятая ошибка действительно провоцируется чередой однотипных запросов, но по сути это не ответ на конкретный запрос, а ответ на любой запрос от занесенного в некий бан-лист за флуд. Ну можно им послать такой нетлог, но причину он почти наверняка не покажет.
Разве что, спустя какое-то время полной неактивности этот бан сбрасывается, после этого можно попробовать его снова поймать и зафиксировать этот момент в логах.
Собственно говоря, если одновременно стартуют пять аккаунтов, да еще если контакт-лист у каждого объемный, то дело скорее всего в запросах на синхронизацию истории, либо в опросе данных френдов/диалогов/групп. Синхронизацию истории можно отключить, если дело в этом.
Но я, собственно, не очень понимаю, чем я могу помочь. Проблема не массовая, у меня ее лично нет, чтобы ее получить нужны специфические условия. Дать возможность настраивать таймаут между запросами, чтобы уходило не максимум три запроса в секунду, а в произвольный интервал?
 

Offline -Вовчик-

  • Jr. Member
  • **
  • Posts: 85
Re: Протокол VKontakte
« Reply #1876 on: 03 06 2025, 17:38:42 »
Ну вот лично у меня 4 аккаунта сразу всегда стартуют в онлайн. Другие включаю изредка по мере необходимости. На 3 из них друзей штук 5-7, групп вообще нет. На 4-м аккаунте друзей много (около 1100), групп нету никаких.
Миранда как и комп включены круглосуточно, и заметил что "ошибка 9" появляется где-то через 20-24 часа непрерывного онлайна (хотя бывает и по 2-е суток работает нормально). Но эта ошибка случается не только на том аккаунте где 1100 друзей но и на других тоже, которые всегда онлайн. На тех, которые включаю периодически - ни разу не было "ошибки 9". Может у них признак ботов - типа если аккаунт сутки или около того в сети - то это бот (сообщения никому практически не пишу, ни сам, ни рассылкой, т.к. почти все переехали в телеграм)
PS такого, чтобы при запуске миранды сразу выскакивала эта ошибка - не было (если до этого не словил её), так что вряд ли влияет одновременный запуск 3-4-5 аккаунтов
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1877 on: 04 06 2025, 04:13:40 »
Тогда ситуация еще интереснее и непонятнее. Основной вал запросов- на старте. Фоновая активность - один запрос в минуту на обновление контактлиста, плюс лонгпул соединение, которое ждет входящих сообщений, плюс если есть какая-то активность на сервере возможно еще что-то. Это все вместе - почти что ничего.

Но эта ошибка случается не только на том аккаунте где 1100 друзей но и на других тоже, которые всегда онлайн.
Не думаю, что бан выдается конкретному аккаунту, скорее конкретному IP. Хотя может быть и какая-то более сложная логика.
Может у них признак ботов - типа если аккаунт сутки или около того в сети - то это бот
У меня может и неделю провисеть без какого-то общения, наиболее частая ситуация - 3-5 суток онлайна. Без "девяток".

В любом случае нетлог нужен момента непосредственно перед "девяткой" (пара минут до). Именно перед, после - уже не интересно.
 

Offline -Вовчик-

  • Jr. Member
  • **
  • Posts: 85
Re: Протокол VKontakte
« Reply #1878 on: 04 06 2025, 08:33:52 »
Скорее всего всё же конкретному аккаунту выдаётся бан. Вчера весь день пользовался аккаунтом, который обычно мало времени онлайн, ещё и на ночь сегодня оставил его включенным - утром снова заметил что никого из друзей нет онлайн (а значит снова невидимая "ошибка 9" - аккаунт как бы перестаёт работать, но миранда этого никак не показывает, пока не перезапустишь её, тогда посыпятся "ошибки 9"), ну и в общем ошибка 9 пошла как раз на этом аккаунте, который раньше никогда под неё не попадал. Другие аккаунты коннектятся, видно кто из их друзей онлайн и т.п.
Возможно причина и не в длительном времени онлайн, а в том что у меня динамический IP и провайдер любит время от времени разрывать соединение (обычно раз в 36 часов, но нередко и чаще). Похоже когда акк. был онлайн и в это время сменяется IP - по их логике это признак бота может ???
И да, выход с браузера под этим аккаунтом - никак не меняет ситуацию, в браузере работает в миранде нет. Нужно всегда выжидать время (от 1-2 часов, до суток) чтобы вновь заработал
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1879 on: 05 06 2025, 04:06:39 »
Если это так, то очень полезно было бы момент смены IP и все что сразу за ним поймать в нетлог.
 

Offline MIR

Re: Протокол VKontakte
« Reply #1880 on: 06 06 2025, 00:17:34 »
Если это так, то очень полезно было бы момент смены IP и все что сразу за ним поймать в нетлог.


IP тут похоже роли не играет, потомучто у меня он бывает месяцами не меняется, ошибка 9 возникает рандомно, при этом не зависимо от активности писал комуто чтото или миранда просто фоном висела.

Заметил на Kate интересную особенность, иногда когда открываю чят с некоторыми контактами то появляется сообщение Flood control или чтото подобное, при этом если открыть чят с другими контактами этого сообщения нет. Щяс речь не о групповых чятах а личных сообщениях если что. При этом сообщения отправляются и принимаются нормально.
Не факт что триггериться на историю сообщений, возможно на попытку обновить аватар или какуюнибуть информацию о контакте.
Бывают и в группах изредка подобные проблемы, при просмотре или отправки коментариев к постам у некоторых юзеров не появляется имя и аватар, когда тыкаеш чтобы просмотреть их профиль - там тоже пустота, ни информации ни аватара, но через какоето время минут 30, если глянуть снова коменты или профиль то инфа о юзере там есть. Несмотря на всё это отправка коментариев и чтение новых также нормально работают.
Такчто вероятная причина в загрузке аватаров и инфе о юзерах.

Но я, собственно, не очень понимаю, чем я могу помочь. Проблема не массовая, у меня ее лично нет, чтобы ее получить нужны специфические условия. Дать возможность настраивать таймаут между запросами, чтобы уходило не максимум три запроса в секунду, а в произвольный интервал?

У меня в ВК примерно 1500 контактов и таже хрень.
Как минимум сделать игнор загрузки того что не может на данный момент загрузиться, если следующий запрос схожий и тоже выдаёт ошибку то отключить все последующие запросы данного типа для остальных контактов. Через заданное время повторить попытку. Тотже Kate насколько понял так и делает, а миранда сразу сходу вырубается.

Судя по логу какраз при загрузке данных профиля ошибка возникает сразу при старте.
Code: [Select]
CVkProto::OnReceiveMyInfo 200
CVkProto::CheckJsonResponse
CVkProto::CheckJsonResult
CVkProto::CheckJsonResult 9
CVkProto::CheckJsonResult SendError
CVkProto::ConnectionFailed ShutdownSession
CVkProto::ShutdownSession
CVkProto::OnLoggedOut
CVkProto::SetAllContactStatuses (40071)
CVkProto::CloseAPIConnection 0
(049AED28:660) Connection closed internal
(049AED28:4294967295) Connection closed
« Last Edit: 06 06 2025, 13:29:20 by MIR »
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1881 on: 17 06 2025, 15:02:13 »
Скорее всего, в следующем ночнике (версия плагина 0.1.19.0) проблема с блокировкой за флуд пофикшена.
Если вдруг нет, можно попробовать создать в базе DWORD-параметр TimeoutAfterUserGet и присвоить ему, скажем, 2000. Больше 5000 задавать бесполезно. Это таймаут в миллисекундах между запросами, которые похоже порождали проблему. "Просто так" и "на всякий случай" задавать этот параметр не надо. Если выяснится, что в нем нет реальной необходимости, я его потом удалю.
 
The following users thanked this post: Boris_M

Offline MIR

Re: Протокол VKontakte
« Reply #1882 on: 22 06 2025, 22:18:42 »
Скорее всего, в следующем ночнике (версия плагина 0.1.19.0) проблема с блокировкой за флуд пофикшена. Если вдруг нет, можно попробовать создать в базе DWORD-параметр TimeoutAfterUserGet и присвоить ему, скажем, 2000.
Неа, не помогает, лог скинул ниже, насколько понял вырубается ещё на стадии запроса инфы о текущем юзере.
Дак сделай игнор дальнейших запросов инфы и аватаров при возникновении ошибки 9 и повторные запросы или автоматически по заданному таймауту к примеру минут через 30 или когда открываеш чят с конкретным контактом.
Посути эти запросы бесполезные т.к. миранда итак всё это в базе хранит, а на сервере если чтото меняется то очень редко.

Code: [Select]
[2025-06-23 2:55:20 0524] CVkProto::SetStatus iNewStatus = 40078, m_iStatus = 40071, m_iDesiredStatus = 40071 m_hWorkerThread = 0
[2025-06-23 2:55:20 0524] CVkProto::SetStatus (2) iNewStatus = 40078, m_iStatus = 1, m_iDesiredStatus = 40078 oldStatus = 40071
[2025-06-23 2:55:20 0524] CVkProto::SetStatus (ret) iNewStatus = 40078, m_iStatus = 1, m_iDesiredStatus = 40078 oldStatus = 40071
[2025-06-23 2:55:20 0C0C] CVkProto::WorkerThread: entering
[2025-06-23 2:55:20 0524] KeepStatus: assigning status 40078 (40071, 0) to VKs
[2025-06-23 2:55:20 0C0C] CVkProto::RetrieveMyInfo
[2025-06-23 2:55:20 0C0C] CVkProto::Push
[2025-06-23 2:55:20 0C0C] CVkProto::ApplyCookies
[2025-06-23 2:55:20 0C0C] CVkProto::ExecuteRequest
====
https://api.vk.com/method/users.get
access_token=*secret*&v=5.199&lang=ru
====
[2025-06-23 2:55:20 0C0C] Connection request to api.vk.com:443 (Flags 11)....
[2025-06-23 2:55:20 0C0C] (02ED0AE0) Connecting to server api.vk.com:443....
[2025-06-23 2:55:20 0C0C] (02ED0AE0) Connecting to ip 87.240.190.75:443 ....
[2025-06-23 2:55:20 0C0C] (580) Connected to api.vk.com:443
[2025-06-23 2:55:20 0C0C] (580 api.vk.com) Starting SSL/TLS negotiation
[2025-06-23 2:55:20 0C0C] (580 api.vk.com) SSL/TLS negotiation successful
[2025-06-23 2:55:20 0C0C] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-23 2:55:20 0C0C] CVkProto::SaveCookies: httoken=*
[2025-06-23 2:55:20 0C0C] CVkProto::OnReceiveMyInfo 200
[2025-06-23 2:55:20 0C0C] CVkProto::CheckJsonResponse
[2025-06-23 2:55:20 0C0C] CVkProto::CheckJsonResult
[2025-06-23 2:55:20 0C0C] CVkProto::CheckJsonResult 9
[2025-06-23 2:55:20 0C0C] CVkProto::CheckJsonResult SendError
[2025-06-23 2:55:20 0C0C] CVkProto::ConnectionFailed ShutdownSession
[2025-06-23 2:55:20 0C0C] CVkProto::ShutdownSession
[2025-06-23 2:55:20 0C0C] CVkProto::OnLoggedOut
[2025-06-23 2:55:20 0C0C] CVkProto::SetAllContactStatuses (40071)
[2025-06-23 2:55:20 0C0C] CVkProto::CloseAPIConnection 0
[2025-06-23 2:55:20 0C0C] (02ED0AE0:580) Connection closed internal
[2025-06-23 2:55:20 0C0C] (02ED0AE0:4294967295) Connection closed
[2025-06-23 2:55:20 0C0C] CVkProto::WorkerThread: leaving m_bTerminated = 1


P.S. Неуверен что конкретно к протоколу ВК это относится, но на всякий случяй напишу: 
Миранда через дня три непрерывной работы начинает потреблять практически 300мб ОЗУ несмотря на то что все окна чятов закрыты, помогает только перезапуск, тогда не больше 80мб жерёт, такое ощющение что всё что идёт из ВК кэшируется в ОЗУ, даже если окна чятов не открывать.
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1883 on: 23 06 2025, 12:45:16 »
Еще раз повторяю:
В любом случае нетлог нужен момента непосредственно перед "девяткой" (пара минут до). Именно перед, после - уже не интересно.
Понятно, что если бан уже получен, то с этим ничего не сделать, кроме как подождать. Ценность информации о том, что кто-то получил бан за флуд users.get и теперь не может стартовать, без информации о том, при каких обстоятельствах этот бан получен, околонулевая. Ниже нее только ценность непрошеных советов и оценочных суждений о полезности каких-либо запросов к серверу. 

Кратко:

Да, первый запрос users.get при старте протокола действительно делает только одно: возвращает информацию о текущем аккаунте. Если это не самый первый запуск после создания аккаунта, без этой информации действительно можно вполне стартовать. Тут разве что информация о смене собственного имени, пока миранда была в оффлайне будет пропущена. Стартовать без этого можно. Но не нужно. Если самый первый user.get вернул error 9, то и все оставшиеся user.get вернут то же самое. А на них много что завязано. В частности без них нельзя получить информацию ни о статусах контактов, ни вообще информацию о контактах и друзьях, ни информацию о пользователях мультичатов, ни об источниках пересылаемых сообщений. Да даже имена друзей без него не получить. Кому-то нужен в онлайне протокол, у которого в клисте все в оффлайне, а в чатах одни «Неизвестные контакты»? Ну, может спамерам разве что, но наверняка у них есть более специализированные инструменты.

Про лонгпул изменений статусов, если что, мне говорить не надо – он, во-первых, используется, во-вторых, очень часто он попросту не присылает изменений, когда они есть. Потому отдельно статусы и приходится опрашивать. И user.get сам по себе вдруг может вернуть пустой ответ, а через несколько секунд – уже нормальный.

Скорее всего, проблема в том, что при некоторых условиях опрос о статусах контактов сервер считает флудом. А в подавляющем большинстве случаев - не считает. Поэтому именно лог ДО получения бана важен, там проблема. После - просто следствие.

После "правильного" лога -Вовчик-а пришлось отказаться от опроса через серверные процедуры, унести это полностью на клиентскую сторону. Тут хоть паузу между запросам можно поставить и что-то динамически проанализировать, не говоря уже про то, что тут логирование принципиально лучше. Оказалось, этого недостаточно - нужен новый  лог с причиной бана. Пока такого лога нет, я могу только рулить частотой опроса. Пока что (завтра, скорее всего) отключу повторный запрос статуса у пачки контактов, если вернулся пустой ответ и увеличу интервал между циклами опроса.

 

Offline Elzor

Re: Протокол VKontakte
« Reply #1884 on: 24 06 2025, 11:49:30 »
Со следующего ночника (версия плагина 0.1.19.1):
1. Переименована настройка базы из TimeoutAfterUserGet в TimeoutForUsersGet. Отвечает за минимальный интервал (в миллисекундах) перед очередным users.get. По умолчанию – 0, максимум 60000. Категорически не рекомендую трогать его, если нет проблем с девятой ошибкой
2. Добавлена настройка базы LoadCListInterval. Отвечает за частоту опроса статусов контактов в минутах.  По умолчанию – 1 минута. Не рекомендуется к изменению, если нет проблем с девятой ошибкой.

Кроме того, несколько изменена логика поведения при получении пустого ответа от сервера на запрос статусов для пачки контактов. Это само по себе, без изменения параметров, может решить проблему.

Если проблема останется – ставьте TimeoutForUsersGet где-нибудь 5000 – 10000 и обязательно увеличивайте LoadCListInterval хотя бы до 3-5. Подбирайте параметры под себя.

Скорее всего, это все, что я могу сделать.
 

Offline Boris_M

Re: Протокол VKontakte
« Reply #1885 on: 25 06 2025, 11:29:35 »
LoadCListInterval.
Byte/Dword ?
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1886 on: 25 06 2025, 11:48:38 »
Boris_M, DWORD
 
The following users thanked this post: Boris_M

Offline MIR

Re: Протокол VKontakte
« Reply #1887 on: 26 06 2025, 15:36:51 »
Поэтому именно лог ДО получения бана важен, там проблема. После - просто следствие.

Вот лог до момента получения 9ки, однотипные запросы в логе сократил и пометил #, а то длинноват получяется.

Code: [Select]
[2025-06-26 19:54:53 0BD0] [VKs] CVkProto::SetStatus iNewStatus = 40078, m_iStatus = 40071, m_iDesiredStatus = 40071 m_hWorkerThread = 0
[2025-06-26 19:54:53 0BD0] [VKs] CVkProto::SetStatus (2) iNewStatus = 40078, m_iStatus = 1, m_iDesiredStatus = 40078 oldStatus = 40071
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::WorkerThread: entering
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::RetrieveMyInfo
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/users.get
access_token=*secret*&v=5.199&lang=ru
====
[2025-06-26 19:54:53 0DE8] [VKs] Connection request to api.vk.com:443 (Flags 11)....
[2025-06-26 19:54:53 0DE8] [VKs] (046A5498) Connecting to server api.vk.com:443....
[2025-06-26 19:54:53 0DE8] [VKs] (046A5498) Connecting to ip 87.240.137.207:443 ....
[2025-06-26 19:54:53 0BD0] [VKs] CVkProto::SetStatus (ret) iNewStatus = 40078, m_iStatus = 1, m_iDesiredStatus = 40078 oldStatus = 40071
[2025-06-26 19:54:53 0BD0] KeepStatus: assigning status 40078 (40071, 0) to VKs
[2025-06-26 19:54:53 0DE8] [VKs] (1364) Connected to api.vk.com:443
[2025-06-26 19:54:53 0DE8] [VKs] (1364 api.vk.com) Starting SSL/TLS negotiation
[2025-06-26 19:54:53 0DE8] [VKs] (1364 api.vk.com) SSL/TLS negotiation successful
{"response":[{"id":***,"first_name":"***","last_name":"***","can_access_closed":true,"is_closed":false}]}
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::GrabCookies: httoken=
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::SaveCookies: httoken=
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::OnReceiveMyInfo 200
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::CheckJsonResponse
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::CheckJsonResult
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::OnLoggedIn
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::SetServerStatus 40078 1
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::RetrieveUserInfo (***)
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::TrackVisitor
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::RetrieveUnreadMessages
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::RetrieveFriends
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::RetrievePollingInfo
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:54:53 0DE8] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/execute.RetrieveUnreadConversations
access_token=*secret*&v=5.199&lang=ru
====
{"response":{"dialogs":{"count":536,"unread_count":90,"items":
#########Кучя данных#########
}}}

[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::SaveCookies: httoken=
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::OnReceiveDlgs 200
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::CheckJsonResponse
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::CheckJsonResult
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::OnReceiveDlgs chatid = 297
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::AppendConversationChat 297
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::RetrieveChatInfo
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::GetHistoryDlg 18218228
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::GetServerHistory
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::GetServerHistory 2000000297 0 100 0 0 18207841
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::OnReceiveDlgs chatid = 348
[2025-06-26 19:54:58 0DE8] [VKs] CVkProto::AppendConversationChat 348
[2025-06-26 19:54:59 0DE8] [VKs] CVkProto::RetrieveChatInfo
[2025-06-26 19:54:59 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:54:59 0DE8] [VKs] CVkProto::GetHistoryDlg 18218227
[2025-06-26 19:54:59 0DE8] [VKs] CVkProto::GetServerHistory
[2025-06-26 19:54:59 0DE8] [VKs] CVkProto::GetServerHistory 2000000348 0 100 0 0 18207842
#######Многократное повторение с другими значениями##########
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetHistoryDlg 14732915
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory 2000000006 0 100 0 0 14732915
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceiveDlgs chatid = 70
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::AppendConversationChat 70
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::RetrieveChatInfo
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetHistoryDlg 18194283
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory 2000000070 0 100 0 0 18194283
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceiveDlgs UserId = ***, iIndex = 00000000, numUnread = 0
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceiveDlgs add UserId = ***,
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetHistoryDlg 14628857
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GetServerHistory ***, 0 100 0 0 14628857
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::RetrieveUsersInformation

#######Многократное повторение с другими значениями##########
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::RetrieveUsersFrameInfo ####Кучя ID####
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
#######Многократное повторение с другими значениями##########

[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::RetrieveGroupInfo (#ID#)
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::Push
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/messages.getLongPollServer
access_token=*secret*&use_ssl=1&lp_version=3&v=5.199&lang=ru
====
{"response":{"server":"im.vk.com\/nim***","key":"***","ts":1755784529}}
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::SaveCookies: httoken=
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceivePollingInfo 200
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResponse
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResult
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceivePollingInfo m_hPollingThread is nullptr
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceivePollingInfo m_pollingTs = '1755784529' m_pollingKey = '***' m_pollingServer = 'im.vk.com/nim***'
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceivePollingInfo PollingThread starting...
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/account.setOffline
access_token=*secret*&v=5.199&lang=ru
====
[2025-06-26 19:55:00 0B7C] [VKs] CVkProto::PollingThread: entering
[2025-06-26 19:55:00 0B7C] [VKs] CVkProto::PollServer
[2025-06-26 19:55:00 0B7C] [VKs] CVkProto::PollServer (online)
[2025-06-26 19:55:00 0B7C] [VKs] Connection request to im.vk.com:443 (Flags 11)....
[2025-06-26 19:55:00 0B7C] [VKs] (049DA158) Connecting to server im.vk.com:443....
[2025-06-26 19:55:00 0B7C] [VKs] (049DA158) Connecting to ip 93.186.237.6:443 ....
{"response":1}
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::SaveCookies: httoken=
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResponse
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResult
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceiveSmth 1
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/execute.RetrieveUserInfo
access_token=*secret*&userid=***&fields=id%2C%20first_name%2C%20last_name%2C%20photo_100%2C%20bdate%2C%20sex%2C%20timezone%2C%20contacts%2C%20last_seen%2C%20online%2C%20status%2C%20country%2C%20city%2C%20relation%2C%20interests%2C%20activities%2C%20music%2C%20movies%2C%20tv%2C%20books%2C%20games%2C%20quotes%2C%20about%2C%20%20domain%2C%20can_write_private_message&v=5.199&lang=ru
====
access_token=vk1.a.***--***&userid=***&fields=id%2C%20first_name%2C%20last_name%2C%20photo_100%2C%20bdate%2C%20sex%2C%20timezone%2C%20contacts%2C%20last_seen%2C%20online%2C%20status%2C%20country%2C%20city%2C%20relation%2C%20interests%2C%20activities%2C%20music%2C%20movies%2C%20tv%2C%20books%2C%20games%2C%20quotes%2C%20about%2C%20%20domain%2C%20can_write_private_message&v=5.199&lang=ru
[2025-06-26 19:55:00 0B7C] [VKs] (1576) Connected to im.vk.com:443
[2025-06-26 19:55:00 0B7C] [VKs] (1576 im.vk.com) Starting SSL/TLS negotiation
[2025-06-26 19:55:00 0B7C] [VKs] (1576 im.vk.com) SSL/TLS negotiation successful
{"response":{"freeoffline":0,"norepeat":1,"usercount":null,"users":false},"execute_errors":[{"method":"users.get","error_code":9,"error_msg":"Flood control","view":null,"i18n_title":null}]}
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::SaveCookies: httoken=
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::OnReceiveUserFrameInfo 200
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResponse
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::CheckJsonResult
[2025-06-26 19:55:00 0DE8] [VKs] CVkProto::WorkerThread: need sleep 1157 msec
[2025-06-26 19:55:02 0DE8] [VKs] CVkProto::ApplyCookies
[2025-06-26 19:55:02 0DE8] [VKs] CVkProto::ExecuteRequest
 

Offline Elzor

Re: Протокол VKontakte
« Reply #1888 on: 27 06 2025, 04:09:35 »
MIR, о, крайне интересно.
Тебе выбрасывают девятку уже сразу после второго users.get, еще до того, как начинается опрос всей твоей пачки контактов. Причем между первым и вторым запросом прошло более 6 секунд, запросы были не подряд и были они не строго одинаковые, хоть и похожие. Жуть. Я в эти запросы даже дополнительные паузы не встраивал, не считая их вероятным источником проблемы.
С другой стороны, другие в ровно такой же ситуации девятку не получают, откуда можно предположить, что ограничения вк ставит персонально, на основе предыдущего поведения.

Что делать:
1. Задать прямо сейчас TimeoutForUsersGet = 20000, LoadCListInterval = 5, чтобы потом гарантированно стартовать уже с этими параметрами.
2. Выждать пару дней, к тому моменту и ночник 0.1.19.2 подъедет с дополнительными правками.
3. Попытаться.

Не знаю, какую роль здесь режим невидимки может играть, может и никакую. Но лучше пока поставить статус онлайн. И если это все не поможет - значит в твоем случае не судьба.
 

Offline MIR

Re: Протокол VKontakte
« Reply #1889 on: 27 06 2025, 08:37:07 »
Не знаю, какую роль здесь режим невидимки может играть, может и никакую. Но лучше пока поставить статус онлайн. И если это все не поможет - значит в твоем случае не судьба.

Про инвиз тоже мысли возникли, вчера вечером чисто онлайн поставил, через какоето время переподключился для проверки, 9ки небыло, ночь ВК онлайн провисел, сёдня опять для проверки переподключился - вылезла 9ка.
Параметры щяс поправил, таймауты увеличил, вобщем посмотрим как дальше пойдёт.
Лог на всякий случяй врублю, если 9ка по другой причине вылезет.

=============

2. Выждать пару дней, к тому моменту и ночник 0.1.19.2 подъедет с дополнительными правками.
Всёравно появляется, но уже в другом месте. Последние 2-3 дня заметил что таймаут у 9ки всё увеличивается, раньше если получясу хватало то сейчяс несколько чясов ждать приходится.

Code: [Select]
https://api.vk.com/method/stats.trackVisitor
access_token=*secret*&v=5.199&lang=ru
====
{"response":1}
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::SaveCookies: httoken=***=api.vk.com; solution429=***=api.vk.com; remixstlid=***=.vk.com; x-api-gateway=2=.vk.com; x_api_gateway_guessus=2=.vk.com; x_api_gateway=2=.vk.com; x_api_gateway_docs=2=.vk.com
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::CheckJsonResponse
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::CheckJsonResult
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::OnReceiveSmth 1
[2025-06-27 22:23:10 0FF4] [VKs] CVkProto::WorkerThread: need sleep 640 msec
[2025-06-27 22:23:11 0FF4] [VKs] CVkProto::ApplyCookies
[2025-06-27 22:23:11 0FF4] [VKs] CVkProto::ExecuteRequest
====
https://api.vk.com/method/execute.GetServerConversationHistory
access_token=*secret*&reqcount=100&offset=0&userid=2000000350&time=0&lastmid=18218392&once=0&v=5.199&lang=ru
====
{"response":{"count":27,"datetime":0,"items":[{"date":1751044361,"from_id":461708391,"id":18219605,"version":42200455,"out":0,"important":false,"is_hidden":false,"reply_message":{"date":1751043231,"from_id":
####Кучя данных######
,"has_tags":false,"orig_photo":{"height":2184,"type":"base","url":"https:\/\/sun9-10.userapi.com\/s\/v1\/ig2\/8WoqLihiGeYbIjNg9JEEMHkeHtkXpQSTAh1K98GJyDVHhhjQciz3CwSPowmt3DNKEmcU5CmELdmP4tYU4d2WZXo.jpg?quality=95&as=32x45,48x68,72x102,108x152,160x226,240x339,360x508,480x677,540x762,640x903,720x1016,1080x1524,1280x1806,1440x2032,1548x2184&from=bu","width":1548}}}],"conversation_message_id":593783}],"text":"","peer_id":2000000350,"random_id":0}],
"fwd_users":false,"once":0,"rcount":100},"execute_errors":[{"method":"users.get","error_code":9,"error_msg":"Flood control","view":null,"i18n_title":null}]}
[2025-06-27 22:23:12 0FF4] [VKs] CVkProto::GrabCookies: remixir=DELETED; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.vk.com; secure; HttpOnly
[2025-06-27 22:23:12 0FF4] [VKs] CVkProto::SaveCookies: httoken=***=api.vk.com; solution429=***=api.vk.com; remixstlid=***=.vk.com; x-api-gateway=2=.vk.com; x_api_gateway_guessus=2=.vk.com; x_api_gateway=2=.vk.com; x_api_gateway_docs=2=.vk.com
« Last Edit: 27 06 2025, 17:33:24 by MIR »