如何检查用户是否使用新的Facebook php api登录
2022-08-30 23:33:12
我正在使用 PHP API 将旧的 FB 应用程序迁移到新的图形 API
我有两个页面:公共页面(不需要用户登录)和私人页面(需要用户登录)
因此,我的应用程序中每个php页面的代码都按如下方式工作:
if (this_page_requires_user_login){
$facebook = new Facebook(...) ;
$session = $facebook->getSession ;
if (!$session){
$url =$facebook.getLoginUrl(array(next => current_page );
echo "<fb:redirect url=$url/>" ;
}
// the rest of the code continues here
现在,如您所见,这种工作方式将每个页面转发到登录URL,虽然它工作正常,但它也很慢,并将&session={bla}字符串附加到非常单个的url。
我需要一种方法来检查用户已经登录的位置,然后再将他重定向到登录页面。但是我在php api中找不到这样的方法。最好的方法是什么?
编辑
这似乎可以解决问题
if ($session) {
try {
$me = $facebook->api('/me');
if ($me) {
// here comes your code for user who is logged in
}
} catch (FacebookApiException $e) {
login()
}
}else{
login()
}
function login(){
$url =$facebook.getLoginUrl(array(next => current_page );
echo "<fb:redirect url=$url/>" ;
}