Вопрос Двухфакторная аутентификация VK API

Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
673
Поинты[?]
32K
Приветствую. Есть скрипт, который делает некую вещь.
Вот код авторизации:
Код:
import vk

app_id   = input('>>> Введите ID приложения: ')
login    = input ('>>> Введите логин: ')
password = input ('>>> Введите пароль: ')

session = vk.AuthSession(app_id, login, password, scope='messages')
vk_api = vk.API(session, v = '5.62')
Но у меня стоит двухфакторка на аккаунте, как можно передать код в vk.AuthSession() ?
Код будет вводиться резервный.
 
Начинающий
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
179
Реакции[?]
18
Поинты[?]
0
Python:
import vk_api

def main():
    login, password = 'ТВОЙ e'mail', 'ТВОЙ password'
    vk_session = vk_api.VkApi(login, password)

    try:
        vk_session.auth()
    except vk_api.AuthError as error_msg:
        print(error_msg)
        return
    
    vk = vk_session.get_api()
    
    response = vk.users.search(city =1)
    print response
    
if __name__ == '__main__':
    main()
Источник -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
673
Поинты[?]
32K
Python:
import vk_api

def main():
    login, password = 'ТВОЙ e'mail', 'ТВОЙ password'
    vk_session = vk_api.VkApi(login, password)

    try:
        vk_session.auth()
    except vk_api.AuthError as error_msg:
        print(error_msg)
        return
   
    vk = vk_session.get_api()
   
    response = vk.users.search(city =1)
    print response
   
if __name__ == '__main__':
    main()
Источник -
Пожалуйста, авторизуйтесь для просмотра ссылки.
Ты код хоть протестил ?
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,825
Реакции[?]
1,852
Поинты[?]
24K
В официальных примерах нашел:
Python:
def auth_handler():
    """ При двухфакторной аутентификации вызывается эта функция.
    """
    # Код двухфакторной аутентификации
    key = input("Enter authentication code: ")
    # Если: True - сохранить, False - не сохранять.
    remember_device = True

    return key, remember_device


def main():
    """ Пример обработки двухфакторной аутентификации """

    login, password = 'python@vk.com', 'mypassword'
    vk_session = vk_api.VkApi(
        login, password,
        # функция для обработки двухфакторной аутентификации
        auth_handler=auth_handler
    )

    try:
        vk_session.auth()
    except vk_api.AuthError as error_msg:
        print(error_msg)
        return
Однако я не уверен, что сработает авторизация с использованием резервных кодов
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
673
Поинты[?]
32K
В официальных примерах нашел:
Python:
def auth_handler():
    """ При двухфакторной аутентификации вызывается эта функция.
    """
    # Код двухфакторной аутентификации
    key = input("Enter authentication code: ")
    # Если: True - сохранить, False - не сохранять.
    remember_device = True

    return key, remember_device


def main():
    """ Пример обработки двухфакторной аутентификации """

    login, password = 'python@vk.com', 'mypassword'
    vk_session = vk_api.VkApi(
        login, password,
        # функция для обработки двухфакторной аутентификации
        auth_handler=auth_handler
    )

    try:
        vk_session.auth()
    except vk_api.AuthError as error_msg:
        print(error_msg)
        return
Однако я не уверен, что сработает авторизация с использованием резервных кодов
Спасибо, но у меня import vk а не import vk_api
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,825
Реакции[?]
1,852
Поинты[?]
24K
но у меня import vk
Проблема в том, что библиотека официально не поддерживает аккаунты с 2фа, поэтому либо стоит переходить на vk_api, либо только получать токен с помощью вышеупомянутой библиотеки и использовать его для авторизации в vk.
1611076480127.png
P.S.: совсем не заметил отсутствие _api в вопросе темы, извиняюсь
UPD: также можно модифицировать класс
Пожалуйста, авторизуйтесь для просмотра ссылки.
алгоритмом из
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,446
Реакции[?]
673
Поинты[?]
32K
Проблема в том, что библиотека официально не поддерживает аккаунты с 2фа, поэтому либо стоит переходить на vk_api, либо только получать токен с помощью вышеупомянутой библиотеки и использовать его для авторизации в vk.
Посмотреть вложение 126142
P.S.: совсем не заметил отсутствие _api в вопросе темы, извиняюсь

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Сверху Снизу