Facebook Test User API登录URL工作或不随机

时间:2012-07-20 07:08:35

标签: facebook-graph-api browser command-line-arguments facebook-test-users

我编写了一个桌面应用程序,它包含FB应用程序数据并列出测试用户。 我想打开一个带有新配置文件的浏览器(浏览器配置文件,而不是FB,因为PHP facebook API中的会话问题 - 我希望不在我的域上的应用程序会话中)。

但问题是,Facebook登录网址是否正常工作。 我试过Firefox&铬。

Firefox -no-remote-p "RANDOM_PROFILE"以及-CreateProfile在执行之前执行以打开具有该配置文件的网址。

Chrome --profile-directory="RANDOM_DIR"(之前创建的目录)。

管理浏览器配置文件在两种浏览器中都很有效。但在大多数情况下,使用Facebook Test User登录URL打开浏览器,只需将我重定向到主页面。

另外,我创建了一些PHP页面:

  • 一段时间后重定向到window.location登录URL
  • 在标题睡眠后重定向('Location:...')以登录url
  • 使用<a href...>标记登录网址。

第三个选项是唯一有效的选项,但它适用于大约20%的情况(有时在该链接上多次点击并且在新标签中多次打开)

如何使用Facebook登录URL启动新的浏览器实例,其中登录工作正常?

编辑:我的登录网址总是在登陆尝试前很快从FB中提取,因此它们没有过期。

1 个答案:

答案 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

更新:请注意,请求的登录网址只能使用此方法一次(可能还有其他方法 - 未检查)

相关问题