def __init__(self, login=None, password=None, number=None, sec_number=None, token=None, proxies=None, auth_handler=None, captcha_handler=None, config=None, config_filename='vk_config.json', api_version='5.63', app_id=2895443, scope=33554431, client_secret=None): """ :param login: Логин ВКонтакте :param password: Пароль ВКонтакте :param number: Номер для проверки безопасности (указывать, если в качестве логина используется не номер) :param sec_number: Часть номера, которая проверяется при проверке безопасности (указывать, если точно известно, что вводить и если автоматическое получение кода из номера работает не корректно) :param token: access_token :param proxies: proxy server {'http': 'http://127.0.0.1:8888/', 'https': 'https://127.0.0.1:8888/'} :param auth_handler: Функция для обработки двухфакторной аутентификации, должна возвращать строку с кодом и булевое значение, означающее, стоит ли запомнить это устройство, для прохождения аутентификации. :param captcha_handler: Функция для обработки капчи :param config: класс для сохранения настроек :param config_filename: Расположение config файла :param api_version: Версия API :param app_id: Standalone-приложение :param scope: Запрашиваемые права. Можно передать строкой :param client_secret: Защищенный ключ приложения для серверной авторизации (https://vk.com/dev/auth_server) """ self.login = login self.password = password self.number = number self.sec_number = sec_number self.sid = None self.token = {'access_token': token} self.api_version = api_version self.app_id = app_id self.scope = scope self.client_secret = client_secret if config is None: self.settings = jconfig.Config(login, filename=config_filename) else: self.settings = config(login, filename=config_filename) self.http = requests.Session() self.http.proxies = proxies self.http.headers.update({ 'User-agent': 'Mozilla/5.0 (Windows NT 6.1; rv:40.0) ' 'Gecko/20100101 Firefox/40.0' }) self.last_request = 0.0 self.error_handlers = { NEED_VALIDATION_CODE: self.need_validation_handler, CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler, TOO_MANY_RPS_CODE: self.too_many_rps_handler, TWOFACTOR_CODE: auth_handler or self.auth_handler } self.lock = threading.Lock()
def __init__(self, login=None, password=None, number=None, sec_number=None, token=None, proxies=None, captcha_handler=None, config_filename='vk_config.json', api_version='5.35', app_id=2895443, scope=33554431, client_secret=None): """ :param login: Логин ВКонтакте :param password: Пароль ВКонтакте :param number: Номер для проверки безопасности (указывать, если в качестве логина используется не номер) :param sec_number: Часть номера, которая проверяется при проверке безопасности (указывать, если точно известно, что вводить и если автоматическое получение кода из номера работает не корректно) :param token: access_token :param proxies: proxy server {'http': 'http://127.0.0.1:8888/', 'https': 'https://127.0.0.1:8888/'} :param captcha_handler: Функция для обработки капчи :param config_filename: Расположение config файла :param api_version: Версия API (default: '5.35') :param app_id: Standalone-приложение (default: 2895443) :param scope: Запрашиваемые права (default: 33554431) :param client_secret: Защищенный ключ приложения для серверной авторизации (https://vk.com/dev/auth_server) """ self.login = login self.password = password self.number = number self.sec_number = sec_number self.sid = None self.token = {'access_token': token} self.api_version = api_version self.app_id = app_id self.scope = scope self.client_secret = client_secret self.settings = jconfig.Config(login, filename=config_filename) self.http = requests.Session() self.http.proxies = proxies # Ставим прокси self.http.headers = { # Притворимся браузером 'User-agent': 'Mozilla/5.0 (Windows NT 6.1; rv:40.0) ' 'Gecko/20100101 Firefox/40.0' } self.last_request = 0.0 self.error_handlers = { NEED_VALIDATION_CODE: self.need_validation_handler, CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler, TOO_MANY_RPS_CODE: self.too_many_rps_handler }
def __init__(self, login=None, password=None, number=None, token=None, proxies=None, captcha_handler=None, config_filename=None, api_version='5.21', app_id=2895443, scope=2097151): """ :param login: Логин ВКонтакте :param password: Пароль ВКонтакте :param number: Номер для проверке безопасности (указывать, если в качестве логина используется не номер) :param token: access_token :param proxies: proxy server {'http': 'http://127.0.0.1:8888/', 'https': 'https://127.0.0.1:8888/'} :param captcha_handler: Функция для обработки капчи :param config_filename: Расположение config файла :param api_version: Версия API (default: '5.21') :param app_id: Standalone-приложение (default: 2895443) :param scope: Запрашиваемые права (default: 2097151) """ self.login = login self.password = password self.number = number self.sid = None self.token = {'access_token': token} self.api_version = api_version self.app_id = app_id self.scope = scope self.settings = jconfig.Config(login, filename=config_filename) self.http = requests.Session() self.http.proxies = proxies # Ставим прокси self.http.headers = { # Притворимся браузером 'User-agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) ' \ 'Gecko/20100101 Firefox/28.0' } self.http.verify = False self.last_request = 0.0 self.error_handlers = { NEED_VALIDATION_CODE: self.need_validation_handler, CAPTCHA_ERROR_CODE: captcha_handler or self.captcha_handler } if login and password: self.sid = self.settings['remixsid'] self.token = self.settings['access_token'] if not self.check_sid(): self.vk_login() else: self.security_check('http://vk.com') if not self.check_token(): self.api_login()