我正在开发一个Facebook应用程序作为页面标签应用程序。我希望在用户通过粉丝页面访问应用程序之前显示OAuth对话框。我怎么能这样做?
对于画布应用程序,当我从应用程序设置(增强的身份验证对话框)启用OAuth对话框时,通过apps.facebook.com/myapp
访问应用程序时会显示OAuth对话框。但是当我使用相同的应用程序访问时在粉丝页面中添加了页面选项卡,OAuth对话框未显示。
答案 0 :(得分:0)
请参阅教程 Canvas Tutorial 。
关键技巧是你需要定位“_top”窗口(在iframe之外)...例如,
echo('<script> top.location.href="' . $auth_url . '"</script>');
或
echo('<a target="_top" href="' . $auth_url . '">Authorize this application...</a>');
据我所知,您无法在iframe内完成此授权流程。
我还建议观看来自Facebook Developer Garage:Paris(2011-03-29)的短视频 Authentication: An Overview 。
如果要请求身份验证(或在身份验证后添加一些其他权限),请参阅两个JavaScript SDK函数FB.getLoginStatus和FB.login。请注意FB.login
启动弹出窗口 - 因此必须从用户click
事件触发(或某些浏览器将阻止弹出窗口)。这种方法的好处是它不需要页面重定向 - 弹出窗口会在没有重新加载的情况下回传响应。