vk_api.exceptions.AuthError: Unknown error (AUTH; no sid). Please send a bugreport to GitHub
Попросили отправить багрепорт :)
Окружение
vk_api: 11.9.9 API: 5.92
Пример
def chandler(capthca: Captcha) -> str:
open_new_tab(capthca.get_url())
return input('Solve the captcha that just opened in your browser: ')
vk = VkApi(*config['vk'], captcha_handler = chandler)
vk.auth()
такая же ошибка, то появляется, то пропадает
Видимо иногда возвращается новая логин форма, она не поддерживается. Если кто-то отправит фикс - мержну
Вроде код для той формы, но лучше сами смотрите в браузере запросы и откуда значения берутся https://github.com/imartemy1524/vk_captcha/blob/b36d3829882bc4e3c79af1d6530d2f52d0074c4d/VkHacker/tools.py#L292
Видимо иногда возвращается новая логин форма
Видимо теперь новая форма возвращается всегда =) Я сделал реализацию на коленке, но пока без нормальной проверки на ошибки и интеграции с вашей либой
Вопрос в интеграции, смотрю метод _vk_login, я так понимаю он отвечает за всю логику входа с куками. Прав ли я, что если старая форма больше не возвращается, то весь код (кроме сохранения кук) можно смело выбросить и заменить новым?
И второй вопрос, не понимаю за что отвечает этот кусочек кода? Что за ошибка (если речь не про HTTP конечно =), актуально ли в 2025?
if response.url.startswith('https://vk.com/429.html?'):
# is this version still used???
hash429_md5 = md5(self.http.cookies['hash429'].encode('ascii')).hexdigest()
self.http.cookies.pop('hash429')
response = self.http.get(f'{response.url}&key={hash429_md5}')
response = self._check_challenge(response)
@kyzima-spb Хмм, тут вопрос всегда или у некоторых IP все еще бывает старая. Но наверн в целом можно на новую переделать
C 429 не уверен, можно оставить где-то там
@python273 exceptions.TWOFACTOR_CODE = -2 - это реальное значение, которое возвращает/возвращал ВК или минус намекает, что это придуманная константа?
Сейчас при валидации кода возвращается 1110, можно ли значение -2 поменять на него ничего не сломав? В коде не нашел никакого сравнения с этой константой
@kyzima-spb минус не из апи, оно в self.error_handlers используется, менять думаю не нужно
@python273 не смог понять, можно ли запомнить устройство и не вводить повторно код, пытался старый код подергать, но без результата
В ответ на вызов метода auth.validateAccount приходит какой-то remember_hash, но в логах не нашел, куда его потом передают и связанные это вещи или нет. Галочка "сохранить вход" в форме задает значение 0/1 для save_user при вызове https://login.vk.com/?act=connect_authorize, я по-умолчанию передаю 1 - эффекта нет
Пока вот так: https://github.com/kyzima-spb/vk_api/blob/62011894b42268343e037417b02c6247c0149710/vk_api/vk_api.py#L488
@kyzima-spb оно возможно с device_id связано и его нужно в конфиг писать. С всякими remember_hash можно поискать сохраняются ли занчения в localstorage, indexeddb, если есть то потом ключи можно в JS коде поискать - может что-то найдется связанное
@python273 device_id точно сохраняется, я по нему нашел в js функцию для его генерации и добавил в utils, но в браузере оно явно не влияет ни на что
remember_hash при запросе из браузера и при запросе через питон генерируется одинаковый, значит от не завязан ни на что, в localstorage и т.п. не нашел ничего похожего
Браузер при любых раскладах просит от меня ввод кода, может они убрали эту фичу?
Нашел другое, это не про девайс, а про галочку "сохранить вход", что-то видимо не хватает, потому что из питона я указываю сохранить, после пытаюсь получить сохраненных и пусто. С куками из браузера сохраненные аккаунты в питоне получил, делаю запрос на перелогин - ошибка. Не уверен, что этот функционал вообще кому-то будет интересен =)