python273 / vk_api

Модуль для создания скриптов для ВКонтакте | vk.com API wrapper
https://pypi.org/project/vk-api/
Apache License 2.0
1.33k stars 321 forks source link

2FA auth exception #498

Open barbashin-andrey opened 9 months ago

barbashin-andrey commented 9 months ago

Описание

При авторизации с использованием 2FA возникает исключение (видимо, связанное с изменением ответа от API)

Окружение

vk_api: 11.9.9 Python: 3.11.5

Консольный вывод

Traceback (most recent call last):
  File "C:\Users\PC\Desktop\project\project\project.py", line 11, in <module>
    do_shit(args.login, args.password, args.group_id, args.channel)
  File "C:\Users\PC\Desktop\project\project\functions.py", line 268, in do_shit
    proccess_input(login, password, group_id, channel)
  File "C:\Users\PC\Desktop\project\project\functions.py", line 37, in proccess_input
    vk_session.auth()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\vk_api.py", line 187, in auth
    self._auth_cookies(reauth=reauth)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\vk_api.py", line 207, in _auth_cookies
    self._vk_login()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\vk_api.py", line 330, in _vk_login
    self._pass_twofactor(response)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\vk_api\vk_api.py", line 356, in _pass_twofactor
    code, remember_device = self.error_handlers[TWOFACTOR_CODE]()
    ^^^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 2)

Как исправить

В модуле vk_api.py на 356 строке заменяем:

code, remember_device = self.error_handlers[TWOFACTOR_CODE]()

на

code = self.error_handlers[TWOFACTOR_CODE]()

и на 362 строке убираем:

'remember': int(remember_device),

т.е. словарь values на 358 строке будет выглядеть так:

values = {
            'al': '1',
            'code': code,
            'hash': auth_hash
        }

После этого авторизация с 2FA работает в штатном режиме

barbashin-andrey commented 9 months ago

P.S.: ничего всё равно не работает =) Теперь просто выбивает vk_api.exceptions.AuthError: Unknown API auth error при попытке использовать какой-либо метод API

Danspers commented 9 months ago

А не пробовал использовать не релизную версию, а прямо с GitHub? Суть в том, что с момента релиза 11.9.9 прошло почти 1,5 года и за это время появились изменения. В том числе и в процедуре авторизации. Посмотри историю коммитов.