Facebook FB画布授权重定向将我踢出FB

Facebook FB画布授权重定向将我踢出FB,facebook,canvas,oauth,redirect,Facebook,Canvas,Oauth,Redirect,我有一个Canvas应用程序,它允许用户首先查看它的全部内容,然后仅当他希望执行某些操作时才请求权限 当用户进入应用程序时,它将启动而不需要权限。我们提供一个“登录”链接,该链接将向 这会导致Facebook徽标出现一个链接,上面写着“转到Facebook.com”。我知道有跨帧问题会导致这种情况,只需将target=\u top放在链接上(或使用Javascript)就可以解决。现在,我想让事情保持简单,所以我不使用这个。我注意到这是在一个很好的iframe_画布中,所以我点击这个链接,进入

我有一个Canvas应用程序,它允许用户首先查看它的全部内容,然后仅当他希望执行某些操作时才请求权限

当用户进入应用程序时,它将启动而不需要权限。我们提供一个“登录”链接,该链接将向

这会导致Facebook徽标出现一个链接,上面写着“转到Facebook.com”。我知道有跨帧问题会导致这种情况,只需将target=\u top放在链接上(或使用Javascript)就可以解决。现在,我想让事情保持简单,所以我不使用这个。我注意到这是在一个很好的iframe_画布中,所以我点击这个链接,进入“许可请求”,它占据了屏幕(这不是用来弹出吗?),iframe_画布似乎已经消失了,我现在有了UIFullPage_容器

我单击“允许”,Facebook将浏览器重定向到

这很糟糕,因为我的“画布”应用程序已经脱离了画布,占据了整个浏览器


是我做错了什么,还是这是某种类型的Facebook bug?我是否简单地将其重定向回,如果是,是否有方法传递一些参数?

只需将它们重定向到
https://apps.facebook.com/yourcanvasapp/whateveryouwant?here=isokay
yourcanvasapp/
之后的部分将发送到服务器。您将获得作为post参数的
已签名的\u请求
,以及查询字符串中的其他参数和路径


换句话说,如果您的安全画布URL为
https://myapp.com/fbapp/
,然后将用户发送到
https://apps.facebook.com/mycanvasapp/foo?bar=baz
,Facebook将向
https://myapp.com/fbapp/foo?bar=baz
和POST数据中的签名请求。

也许我这里遗漏了什么,但是不使用target=\u top怎么能让事情更简单呢?这实际上是Facebook通过显示“转到Facebook.com”链接强迫你做的事情;它正在实现顶级重定向,因为它需要显示“权限”对话框页面。那么,为什么不自己动手,为用户节省一个可能令人困惑的中间步骤呢


至于回到iframe,使用apps.facebook.com/yourapp/somepage作为重定向uri可能会更容易,这样它将直接返回到“app”模式。

是的,这样就可以了。我不知道你可以像那样将parms传递到你的应用程序,谢谢。我面临着同样的问题。我将重定向uri设置为,表示发生未知错误:(对不起,可能是用词不当。不是很简单,我只是想限制正在进行的事情的数量,以找出我为什么突然跳出iframe。我现在明白了,所以我正在重定向到_top,一切看起来都很美,谢谢。