我正在尝试在facebook上实现一个画布页面。 Canvas tutorial表示我应该将redirect_url设置为画布页面:
http://apps.facebook.com/<appName>
然而,当我这样做时,我得到错误191.如果我将其设置为画布URL http://www.<mysite>.com/fbCanvas
,那么我将丢失Facebook界面,因为它在“顶部”窗口中打开。实现此功能的正确方法是什么?这是Facebook的错误吗?
答案 0 :(得分:4)
我有同样的问题,我这样解决了:
打开FBUtils.php
并转到第94行,它会显示
echo("<script> top.location.href='" . $authorize_url . "'</script>");
将其替换为
echo("<script> window.location.href='" . $authorize_url . "'</script>");
就是这样,你不会离开FB,你的应用程序将在iframe中!
答案 1 :(得分:1)
这不是正常行为,您的画布页面可能正在做一些事情来摆脱Facebook框架,比如使用Javascript等设置window.top.location。
答案 2 :(得分:0)
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返回
如果您拥有的不仅仅是画布访问点(标签页或网页),则此流程最灵活,但有点难以处理。