2010-11-01 70 views
1

我正在修改FBML画布应用程序以使用新的PHP SDK和身份验证代替旧的REST API。FBML画布应用程序验证

现在,我尝试使用这个片段:如果我使用PHP头功能相对不属于任何URL

$me = null; 
// Session based API call. 
if ($session) { 
    try { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    } 
} 
// login or logout url will be needed depending on current user state. 
if ($me) { 
} else { 
    $loginUrl = $facebook->getLoginUrl(array('req_perms' => 'user_birthday, publish_stream, email')); 
    header('Location: '.$loginUrl); 
} 

不过,我得到这个错误:

Application Temporarily Unavailable 
The URL [https://www.facebook.com/login.php?.........] is not valid. 

Sorry, the application you were using is experiencing a problem. Please try again later. 

如果我需要使用最新的PHP SDK对我的FBML画布应用程序进行身份验证,如何正确重定向到请求扩展权限的应用程序登录页面?

回答

0

看起来您不能使用服务器端重定向(header())将用户推送到身份验证页面。目前我正在使用此功能:

function redirect($url) 
{ 
    echo '<script>top.location="' . $url . '";</script>'; 
    //echo '<fb:redirect url="' . $url . '"></fb:redirect>'; 
    //header("location:$url"); 
    exit(); 
}