FBML Canvas应用程序身份验证

时间:2010-11-01 14:26:18

标签: php facebook fbml facebook-graph-api

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

现在我正在尝试使用此代码段:

$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头函数,我会收到此错误:

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画布应用程序上进行身份验证,如何正确地重定向到请求扩展权限的应用程序登录页面?

1 个答案:

答案 0 :(得分:0)

看起来您无法使用服务器端重定向(header())将用户推送到auth页面。我现在正在使用它:

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