Php FBML画布应用程序身份验证
我正在修改一个FBML画布应用程序,以使用新的PHPSDK和身份验证,而不是旧的RESTAPI 现在我正在尝试使用以下代码段:Php FBML画布应用程序身份验证,php,facebook,fbml,facebook-graph-api,Php,Facebook,Fbml,Facebook Graph Api,我正在修改一个FBML画布应用程序,以使用新的PHPSDK和身份验证,而不是旧的RESTAPI 现在我正在尝试使用以下代码段: $me = null; // Session based API call. if ($session) { try { $uid = $facebook->getUser(); $me = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log
$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);
}
但是,如果对任何非相对URL使用php header函数,则会出现以下错误:
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 canvas应用程序进行身份验证,如何正确重定向到请求扩展权限的应用程序登录页?看起来您无法使用服务器端重定向(header())将用户推送到身份验证页。我现在正在使用这个:
function redirect($url)
{
echo '<script>top.location="' . $url . '";</script>';
//echo '<fb:redirect url="' . $url . '"></fb:redirect>';
//header("location:$url");
exit();
}
函数重定向($url)
{
echo'top.location=“”.$url.“;”;
//回声';
//标题(“位置:$url”);
退出();
}