0

我想请用户使用 facebook javascript sdk 向我的应用授予“publish_stream”权限。

我这样初始化它:

FB.init({
    appId  : '203702512703',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true, // parse XFBML
    channelURL : 'http://mydomain.com/channel.php', // channel.html file
    oauth  : true // enable OAuth 2.0
});

我的 FB.ui 调用如下所示:

FB.ui({
    client_id: '203702512703',
    method: 'oauth',
    scope: 'publish_stream',
    redirect_uri: 'http://mydomain.com/',
    response_type: 'token',
    display: 'dialog'
  });

如果我将“对话框”更改为“弹出”,它会完美运行。但是,如果我指定“对话框”或不选择该选项,它会向我显示 fb-div,但带有加载动画(如: http: //p.iqs.me/t1c4j)并且内容永远不会加载。

我究竟做错了什么?

更新:我发现这个页面http://developers.facebook.com/docs/reference/dialogs/#display说以下关于使用“iframe”作为显示:“由于点击劫持的风险,这仅允许某些某些对话框,并要求您传递有效的 access_token"

没有说任何关于“对话”思想的事情,但 iframe 和对话都给出了同样糟糕的结果。

我将如何传递 access_token?

4

2 回答 2

1

'popup' 对于方法是强制性的:'oauth' 或 FB.login 用于 javascript SDK,因为安全性(点击劫持和网络钓鱼)。我建议无论如何都使用 FB.login 来获取权限或进行身份验证,因为它更方便。

希望这可以帮助

于 2011-09-29T18:41:14.987 回答
0

使用 display: iframe 的方式也存在差异。 FB.login 取决于您是在选项卡中还是在画布上。在选项卡上,您不需要 access_token,而在您需要的画布上。

So on a canvas, you're stuck with either pop-ups being blocked or a good percentage of users refusing to provide basic permissions for something as simple as a post to their own wall that they initiated. IMVHO FB need to rectify this asap but I've had a bug logged against it for months and there's been no sign of a change.

于 2011-10-03T15:18:47.133 回答