Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mechanize重定向的Python Facebook访问\u令牌_Python_Facebook_Redirect_Mechanize - Fatal编程技术网

使用mechanize重定向的Python Facebook访问\u令牌

使用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

我正在构建一个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 )
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次。