Php facebook应用程序在facebook页面内获得身份验证

Php facebook应用程序在facebook页面内获得身份验证,php,facebook,facebook-apps,Php,Facebook,Facebook Apps,我有一个facebook页面 我已经在页面选项卡中构建了一个应用程序 该应用程序与原始url配合良好 它从facebook获得登录名并返回url 如何在不更改“iframe内部”url的情况下从用户处获得授权 require_once(“facebook.php”); $facebook=新的facebook(数组)( “appId”=>“App_id”, “秘密”=>“秘密”); $current_user=$facebook->getUser(); $params=array('scope'

我有一个facebook页面 我已经在页面选项卡中构建了一个应用程序 该应用程序与原始url配合良好 它从facebook获得登录名并返回url

如何在不更改“iframe内部”url的情况下从用户处获得授权

require_once(“facebook.php”);
$facebook=新的facebook(数组)(
“appId”=>“App_id”,
“秘密”=>“秘密”);
$current_user=$facebook->getUser();
$params=array('scope'=>'email,user_likes,user_friends');
如果($current_user){
试一试{
$expiration=time()+172800;
$cookie_value=$current_user.。$expiration;
setcookie('fbid',$cookie_值,$expiration,“/”);
回声'
window.location=“like.php”;
';
}捕获(FacebookApiException$e){
$login\u url=$facebook->getLoginUrl($params);
回声'
window.location=“”.$login_url.”;
';
出口
错误日志($e->getType());
错误日志($e->getMessage());
}
}否则{
$login\u url=$facebook->getLoginUrl($params);
回声'
window.location=“”.$login_url.”;
';
出口
}

创建facebook选项卡应用程序而不是web应用程序
并使用JSSDK创建一个facebook标签应用程序,而不是web应用程序
并使用
JS-SDK

如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–
top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的
FB.login
方法。这不需要重定向到不同的URL,但在一个简单的覆盖中显示登录对话框–更好的用户体验。如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–
top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的
FB.login
方法。这不需要重定向到不同的URL,但在一个简单的覆盖中显示登录对话框–更好的用户体验。如果您想从页面选项卡应用程序中通过URL调用登录对话框,则必须在顶部窗口实例中执行此操作–
top.location.href='login URL'
但在页面选项卡/画布应用程序中处理登录的更方便的方法是嵌入JSSDK,并使用它的
FB.login
方法。这不需要重定向到不同的URL,而是在一个简单的覆盖层中显示登录对话框,用户体验更佳。
require_once("facebook.php");
$facebook = new Facebook(array(
        'appId' => 'App_id',
        'secret' => 'Secret'));
$current_user = $facebook->getUser();

$params = array('scope' =>'email,user_likes,user_friends');
if ($current_user) { 
    try {
            $expiration = time() + 172800; 
            $cookie_value = $current_user . '|' . $expiration;
            setcookie('fbid', $cookie_value, $expiration , "/");
            echo '<script type="text/javascript">
            window.location = "like.php";
            </script>';
    } catch (FacebookApiException $e) {
        $login_url = $facebook->getLoginUrl($params);
        echo '<script type="text/javascript">
        window.location = "' . $login_url . '";
        </script>';
        exit;
        error_log($e->getType());
        error_log($e->getMessage());
    }
} else {
    $login_url = $facebook->getLoginUrl($params);
    echo '<script type="text/javascript">
        window.location = "'.$login_url.'";
        </script>';
    exit;
}