获取 FB 令牌 Python

我正在尝试将 FB 令牌发送给 Tinder,但在提交 CONFIRM 表单后我遇到了一些错误。我试图通过异常,但仍然失败。


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)


我可以得到响应,但代码仍然无法返回 access_token。


Cats萌萌
浏览 119回答 2
2回答

qq_笑_17

经过一番研究,我找到了解决方案。import reimport robobrowserimport sysimport  randomimport timeMOBILE_USER_AGENT = "Tinder/7.5.3 (iPhone; iOS 10.3.2; Scale/2.00)"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()    try:        s.submit_form(f, submit=f.submit_fields['__CONFIRM__'])        #print(s.response.content.decode())        access_token = re.search(            r"access_token=([\w\d]+)", s.response.content.decode()).groups()[0]    except requests.exceptions.InvalidSchema as browserAddress:        #print(type(browserAddress))        #print(str(browserAddress))        access_token = re.search(             r"access_token=([\w\d]+)", str(browserAddress)).groups()[0]        return(access_token)email = sys.argv[1]password = sys.argv[2]access_token = get_access_token(email, password)

慕桂英3389331

这个怎么样res = browser.submit_form(form, submit='__CONFIRM__')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python