我正在尝试在 facebook 上实现一个画布页面。Canvas 教程说我应该将 redirect_url 设置为画布页面 :
http://apps.facebook.com/<appName>
但是,当我这样做时,我收到错误 191。如果我将其设置为画布 url http://www.<mysite>.com/fbCanvas
,那么我会丢失 Facebook 界面,因为它在“顶部”窗口中打开。实现此功能的正确方法是什么?这是 Facebook 的错误吗?
我正在尝试在 facebook 上实现一个画布页面。Canvas 教程说我应该将 redirect_url 设置为画布页面 :
http://apps.facebook.com/<appName>
但是,当我这样做时,我收到错误 191。如果我将其设置为画布 url http://www.<mysite>.com/fbCanvas
,那么我会丢失 Facebook 界面,因为它在“顶部”窗口中打开。实现此功能的正确方法是什么?这是 Facebook 的错误吗?
我有同样的问题,我是这样解决的:
打开FBUtils.php
并转到第 94 行,它显示
echo("<script> top.location.href='" . $authorize_url . "'</script>");
将其替换为
echo("<script> window.location.href='" . $authorize_url . "'</script>");
仅此而已,您不会离开 FB,您的应用程序将在 iframe 中!
这不是正常行为,您的画布页面可能正在做一些事情来摆脱 Facebook 框架,例如使用 Javascript 设置 window.top.location 等。
redirect_url 用于在身份验证过程之后重定向用户。您不能使用 facebook 页面作为重定向目的地。redirect_url 必须与原始画布页面位于同一域中。然后,您可以在身份验证过程后将用户从您的域重定向到相关的 Facebook 页面。
1,apps.facebook.com/appName 一直运行,直到您将用户重定向到 FB AUTH 进程页面
2、FB AUTH PAGE 将用户(在认证过程之后)重定向到http://www.mysite.com(你应该在这里实现认证)
3,您应该将用户重定向到apps.facebook.com/appName
如果您有多个画布访问点(选项卡或网页),则此流程最灵活,但有点难以处理。