使用mechanize重定向的Python Facebook访问\u令牌
我正在构建一个python应用程序,它使用一个登录界面,通过直接传递用户登录数据来自动登录facebook。主要目标是从facebook获得访问令牌 facebook登录脚本如下所示:使用mechanize重定向的Python Facebook访问\u令牌,python,facebook,redirect,mechanize,Python,Facebook,Redirect,Mechanize,我正在构建一个python应用程序,它使用一个登录界面,通过直接传递用户登录数据来自动登录facebook。主要目标是从facebook获得访问令牌 facebook登录脚本如下所示: import mechanize br = mechanize.Browser() br.set_handle_equiv( True ) br.set_handle_gzip( True ) br.set_handle_redirect( True ) br.set_handle_referer( True
import mechanize
br = mechanize.Browser()
br.set_handle_equiv( True )
br.set_handle_gzip( True )
br.set_handle_redirect( True )
br.set_handle_referer( True )
br.set_handle_robots( False )
br.set_handle_refresh( mechanize._http.HTTPRefreshProcessor(), max_time = 1)
br.addheaders = [ ( 'User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1' ) ]
user = 'me@mymail.com'
password = 'myPass'
# note that client_id is pseudo-nr
url = 'https://m.facebook.com/dialog/oauth?client_id=123456789012345&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token'
#Open URL and submit
br.open(url)
br.select_form(nr=0)
br.form['email'] = user
br.form['pass'] = password
br.submit()
result = br.geturl()
print result
事实上,脚本运行得很好,但之后似乎出现了重定向问题
br.submit()
通过Firefox登录给定URL时,在手动添加用户名/密码并按下提交按钮后,将调用以下URL:
https://www.facebook.com/login.php?login_attempt=1&next=https%3A%2F%2Fwww.facebook.com%2Fv2.0%2Fdialog%2Foauth%3Fredirect_uri%3Dhttps%253A%252F%252Fwww.facebook.com%252Fconnect%252Flogin_success.html%26response_type%3Dtoken%26client_id%3D123456789012345%26ret%3Dlogin&lwv=100
这与br.submit()命令给出的URL相同
不幸的是,Firefox正在执行另一个重定向,首先是:
https://www.facebook.com/v2.0/dialog/oauth?redirect_uri=https%3A%2F%2Fwww.facebook.com%2Fconnect%2Flogin_success.html&response_type=token&client_id=123456789012345&ret=login&ext=143846220&hash=KefDdKCLQeJo_hJR
然后是最终目的地:
https://www.facebook.com/connect/login_success.html#access_token=CAAGXPLMhY0cYMlFbAPXJnPKtEPPQCP4NNZCyJkiRLE1B0iHeK6KonmgsyrzQu4uJbfe1TDV1YrmtyFb3SuYJAVhZBazHDr49oYh3i5WThZAfgTDmtHFsmpvn3ZBpeJ3NR718Dn9rm0PX4ZCpsBA6wAItUdHDcAiOZBIZACliuVEefqseFXtqCNFN2ZC9UGslohsZD&expires_in=3780
我不知道为什么mechanize不执行此重定向。有没有办法解决这个问题?我有多个虚拟机用于测试需要访问令牌的应用程序。正如你可能理解的那样,我不想一天手动登录10次。我有多个VM用于测试需要access_令牌的应用程序。正如你可能理解的那样,我不想一天手动登录10次。