【问题标题】:Fb.ui() popup works but dialog loads foreverFb.ui() 弹出窗口有效,但对话框永远加载
【发布时间】:2011-10-03 23:18:47
【问题描述】:

我想请求用户使用 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?

【问题讨论】:

  • 您的问题是否与bug类似?
  • 看起来有点相似。但如果这是一个错误,我猜成千上万的应用程序会受到它的影响。更有可能是我在这里做错了什么。

标签: facebook facebook-javascript-sdk facebook-ui


【解决方案1】:

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

希望对你有帮助

【讨论】:

  • 好的。谢谢 :) 这没有很好的记录。
【解决方案2】:

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

因此,在画布上,要么弹出窗口被阻止,要么大部分用户拒绝为他们发起的在自己的墙上发帖这样简单的事情提供基本权限。 IMVHO FB 需要尽快纠正这个问题,但我已经记录了几个月的错误,并且没有任何改变的迹象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多