0

在 FBML 应用程序中,您可以提示扩展权限,如下所示:

Facebook.showPermissionDialog('publish_stream', callback);

这渲染了一个灯箱(很像 FB.ui({method: 'foo', display: 'iframe'}); 那样)。

从我在文档中看到的内容来看,现在提示更多扩展权限的唯一方法是使用 FB.login() 弹出一个窗口,或者将用户重定向到 oauth 对话框全屏。我们不想依赖前者,因为弹出窗口不可靠,而后者在我们的用户交互流程中毫无意义。灯箱是唯一有意义的方法。

如果 oauth 对话框可以显示为 iframe,则此代码理论上可以工作:

FB.ui({method: 'oauth',
    display: 'iframe',
    access_token: 'foo',
    scope: 'publish_stream'
    }, callback);

但是 oauth 对话框只支持显示为“page”和“mobile”。

有什么我忽略的方法吗?

4

1 回答 1

1

想一想:当然不可能在 iframe 中使用身份验证对话框,因为这是一个安全问题

在弹出窗口中显示或重定向到它使用户能够检查站点地址实际上是 facebook.com。

如果您在哪里使用灯箱中的身份验证对话框作为 iframe 或类似内容,作为用户,我将无法查看它放入登录表单的数据(如果我没有登录,则会显示)到 Facebook)实际上是发送到 Facebook,或者如果您刚刚设置了自己的表单,将数据发送到您的服务器,因为您正试图通过网络钓鱼获取我的 Facebook 登录数据……</p>

于 2012-05-31T09:36:19.267 回答