我正在尝试将 FB token 发送到 Tinder,但在提交确认表单后遇到了一些错误。我尝试过传递异常,但仍然失败。
import re
import robobrowser
import sys
import random
import time
MOBILE_USER_AGENT = 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_5 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) Mobile/15D60 AKiOSSDK/4.29.0'
FB_AUTH = 'https://www.facebook.com/v2.6/dialog/oauth?redirect_uri=fb464891386855067%3A%2F%2Fauthorize%2F&scope=user_birthday%2Cuser_photos%2Cuser_education_history%2Cemail%2Cuser_relationship_details%2Cuser_friends%2Cuser_work_history%2Cuser_likes&response_type=token%2Csigned_request&client_id=464891386855067&ret=login&fallback_redirect_uri=221e1158-f2e9-1452-1a05-8983f99f7d6e&ext=1556057433&hash=Aea6jWwMP_tDMQ9y'
def get_access_token(email, password):
s = robobrowser.RoboBrowser(user_agent=MOBILE_USER_AGENT, parser="lxml")
s.open(FB_AUTH)
## submit login form
f = s.get_form()
f["pass"] = password
f["email"] = email
s.submit_form(f)
## click the 'ok' button on the dialog informing you that you have already authenticated with the Tinder app
f = s.get_form()
time.sleep(random.random()*1.5)
s.submit_form(f, submit=f.submit_fields['__CONFIRM__'])
## get access token from the http response
access_token = re.search(r"access_token=([\w\d]+)", s.response.content.decode()).groups()[0]
return access_token
email = sys.argv[1]
password = sys.argv[2]
access_token = get_access_token(email, password)
print(access_token)
----------------------------------------------------------------------------
输出:
Traceback (most recent call last):
File "TokenRefresh.py", line 33, in <module>
access_token = get_access_token(email, password)
File "TokenRefresh.py", line 23, in get_access_token
s.submit_form(f, submit=f.submit_fields['__CONFIRM__'])
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\robobrowser\browser.py", line 343, in submit_form
response = self.session.request(method, url, **send_args)
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 668, in send
history = [resp for resp in gen] if allow_redirects else []
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 668, in <listcomp>
history = [resp for resp in gen] if allow_redirects else []
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 247, in resolve_redirects
**adapter_kwargs
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 640, in send
adapter = self.get_adapter(url=request.url)
File "C:\Users\silva\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\sessions.py", line 731, in get_adapter
raise InvalidSchema("No connection adapters were found for '%s'" % url)
requests.exceptions.InvalidSchema: No connection adapters were found for... '
我可以得到响应,但代码仍然无法返回access_token。
最佳答案
这个怎么样 res = browser.submit_form(form, Submit='__CONFIRM__')
关于python - 获取 FB token Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57662543/