fix login with facebook

This commit is contained in:
Romain Bignon 2015-06-13 12:50:51 +02:00
commit 27226af7d8

View file

@ -23,7 +23,7 @@ import re
from weboob.browser.browsers import DomainBrowser from weboob.browser.browsers import DomainBrowser
from weboob.browser.profiles import IPhone from weboob.browser.profiles import IPhone
from weboob.browser.pages import HTMLPage from weboob.browser.pages import HTMLPage
from weboob.exceptions import BrowserIncorrectPassword from weboob.exceptions import BrowserIncorrectPassword, ParseError
from weboob.tools.json import json from weboob.tools.json import json
@ -34,6 +34,7 @@ class FacebookBrowser(DomainBrowser):
BASEURL = 'https://graph.facebook.com' BASEURL = 'https://graph.facebook.com'
CLIENT_ID = "247294518656661" CLIENT_ID = "247294518656661"
PROFILE = IPhone('Happn/3.0.2')
access_token = None access_token = None
info = None info = None
@ -50,19 +51,15 @@ class FacebookBrowser(DomainBrowser):
self.location(self.response.headers['Location']) self.location(self.response.headers['Location'])
params = {} page = HTMLPage(self, self.response)
for inp in re.findall(r'input [^>]*type=\\"hidden\\" [^>]*>', self.response.text, re.MULTILINE): form = page.get_form(nr=0, submit='//input[@value="OK"]')
m = re.search(r'name=\\"([^"]+)\\"', inp) form.submit()
m2 = re.search(r'value=\\"([^"]+)\\"', inp)
params[m.group(1)] = m2.group(1).replace('\\', '') if m2 else ''
params['__CONFIRM__'] = 1
m = re.search(r'rel=\\"async\\" ajaxify=\\"([^"]+)\\"', self.response.text, re.MULTILINE)
if m:
uri = m.group(1).replace('\\', '')
self.location(uri, data=params)
m = re.search('access_token=([^&]+)&', self.response.text) m = re.search('access_token=([^&]+)&', self.response.text)
if m: if m:
self.access_token = m.group(1) self.access_token = m.group(1)
else:
raise ParseError('Unable to find access_token')
self.info = self.request('/me') self.info = self.request('/me')