def _give_access(self, html, opener): """ Garant access to requested scopes """ parser = FormParser() parser.feed(html.decode("utf-8")) parser.close() if not parser.form_parsed or parser.url is None: raise RuntimeError( "Something wrong with a parser. Unable parse VK application authorization form") r = opener.open( parser.url, urllib.parse.urlencode(parser.params).encode("utf-8")) return r.geturl()
def _auth_user(self, email, password, client_id, scope, opener): """ Additional method for initial auth """ response = opener.open( "https://oauth.vk.com/oauth/authorize?" + "redirect_uri=https://oauth.vk.com/blank.html&" + "response_type=token&" + "client_id={}&scope={}&display=mobile".format(client_id, ",".join(scope))) html = response.read().decode("utf-8") # Parse user authorization form parser = FormParser() parser.feed(html) parser.close() if not parser.form_parsed or parser.url is None \ or "pass" not in parser.params or "email" not in parser.params: raise RuntimeError( "Something wrong with page. Unable parse VK authorization form") # Set forms parameters, need to be filled by user parser.params["email"] = email parser.params["pass"] = password # logging.debug(parser.method) # logging.debug(parser.params) # logging.debug(parser.url) r = opener.open( parser.url, urllib.parse.urlencode(parser.params).encode("utf-8")) return r.read(), r.geturl()
def give_access(html, opener): parser = FormParser() parser.feed(str(html)) parser.close() response = opener.open(parser.url, urlencode(parser.params).encode("utf-8")) return response.geturl()
def auth_user(email, password, app_id, scope, opener): response = opener.open( "https://oauth.vk.com/oauth/authorize?" + \ "redirect_uri=https://oauth.vk.com/blank.html&response_type=token&" + \ "client_id=%s&scope=%s&display=wap" % (app_id, ",".join(scope)) ) html = response.read() parser = FormParser() parser.feed(str(html)) parser.close() parser.params["email"] = email parser.params["pass"] = password response = opener.open(parser.url, urlencode(parser.params).encode("utf-8")) # INPUT return response.read(), response.geturl()