我编写了一个桌面应用程序,它包含FB应用程序数据并列出测试用户。 我想打开一个带有新配置文件的浏览器(浏览器配置文件,而不是FB,因为PHP facebook API中的会话问题 - 我希望不在我的域上的应用程序会话中)。
但问题是,Facebook登录网址是否正常工作。 我试过Firefox&铬。
Firefox -no-remote
,-p "RANDOM_PROFILE"
以及-CreateProfile
在执行之前执行以打开具有该配置文件的网址。
Chrome --profile-directory="RANDOM_DIR"
(之前创建的目录)。
管理浏览器配置文件在两种浏览器中都很有效。但在大多数情况下,使用Facebook Test User登录URL打开浏览器,只需将我重定向到主页面。
另外,我创建了一些PHP页面:
<a href...>
标记登录网址。第三个选项是唯一有效的选项,但它适用于大约20%的情况(有时在该链接上多次点击并且在新标签中多次打开)
如何使用Facebook登录URL启动新的浏览器实例,其中登录工作正常?
编辑:我的登录网址总是在登陆尝试前很快从FB中提取,因此它们没有过期。
答案 0 :(得分:2)
我终于明白了。
问题是,在使用测试用户登录URL之前,http://facebook.com必须至少加载一次(适用于设置一些cookie)。
所以,我使用脚本在iframe中打开Facebook,然后在一段时间后重定向到登录网址:
<script>
setTimeout(function(){
window.location = "<?php echo $_GET['url']; ?>";
} , 2000 );
</script>
<iframe src="http://facebook.com/"></iframe>
请注意,iframe上的facebook将仅作为head + body加载空白页面加载,但这是有效的。
然后,您可以使用此脚本通过将测试用户传递给Chrome命令行来登录测试用户,并使用url编码的Test-User-Login-URL作为“url”GET参数。
为chrome个人资料使用全新创建的目录,以避免在您的应用领域中获得旧会话。
另外,我建议使用参数:--start-maximized
,--no-default-browser-check
,--no-first-run
更新:请注意,请求的登录网址只能使用此方法一次(可能还有其他方法 - 未检查)