Facebook上的FB.ui oauth弹出窗口

时间:2011-06-07 03:49:02

标签: javascript facebook canvas dialog

我正在尝试在Facebook Canvas页面上使用FB.ui oauth popup。我正在使用最新的Javascript SDK。

在页面选项卡上,它可以很好地执行:FB.ui({method: 'oauth'}, callback);这为我提供了允许访问弹出窗口,然后使用响应完美地调用我的回调。不需要重定向。

然而,当我在Canvas上尝试完全相同的事情时,我得到一个FB对话框,上面写着“发生错误。请稍后再试”。有没有人让它工作,或知道任何变通办法?

我确实使用top.location.href = "http://www.facebook.com/dialog/oauth?client_id=xxx&redirect_uri=xxx方法取得了成功,但如果可能,我宁愿不必重定向。

2 个答案:

答案 0 :(得分:5)

事实证明FB.login(回调)在画布页面上运行良好,并且它也避免了重定向。

所以我的答案就是改变FB.ui而不是做FB.login。发送给回调的响应与FB.ui略有不同,但非常接近。

FB.login(function(response) { 
  if(response && response.session) {
    //do stuff with session
  }
});

答案 1 :(得分:0)

“它不起作用”是什么意思?如果未响应用户事件(如鼠标单击)而调用弹出窗口,则可能会阻止弹出窗口。