我遇到了facebook php-sdk new api,权限窗口的问题。 我在facebook iframe应用程序中使用facebook连接。
当我尝试使用以下网址登录时,登录窗口在Facebook应用程序内部布局良好,但权限diolog正在被阴影屏幕覆盖。
这会导致什么? 我只使用php没有javascript facebook api。
由于
答案 0 :(得分:2)
我遇到了同样的问题。要修复它,您需要使用JS将用户重定向到FB授权页面,然后让FB将经过身份验证的用户传递回您的应用页面。您不需要使用JS API。
首先,检查FB应用程序设置,并确保将“授权后重定向URL”设置为Canvas页面URL。 (例如http://apps.facebook.com/[YOUR APP] /)
然后按照以下方式处理您的身份验证:
$ session = $ facebook-> getSession(); $ me = null; if($ session){ 尝试{ $ uid = $ facebook-> getUser(); $ me = $ facebook-> api('/ me'); } catch(FacebookApiException $ e){ error_log中($ E); } }
if($ me){ $ logoutUrl = $ facebook-> getLogoutUrl(); } else { $ loginUrl = $ facebook-> getLoginUrl(array('next'=>“http://apps.facebook.com/[YOUR APP] /”)); }
if(!$ me){
打印( “[HTML] [头]”);
print(“[script type = \”text / javascript \“] function redirect(){top.location.href = \”“”;
打印($ loginUrl);
print(“\”;} [/ script] [/ head]“);
print(“[body onload = \”redirect(); \“]请等待... [/ body] [/ html]”);
出口();
}
(我不知道如何让标签出现在这里,所以我使用方括号。你会想要替换那些)
答案 1 :(得分:2)
有一个更好的解决方案来处理iframe基础画布应用程序。请查看以下教程http://www.phpfour.com/blog/2010/05/quick-start-on-new-facebook-php-sdk-iframe-based/#content