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