应用程序未添加到用户的应用程序书签中

时间:2011-10-20 19:09:38

标签: facebook-php-sdk bookmarks

我正在开发一个带有最新PHP SDK V3.1.1的Facebook应用程序 添加应用程序的新用户没有在其主页中列出的应用程序 应用列表。它过去只是由授权应用程序的用户工作。

有关如何使这项工作的任何提示?

请参阅下面的代码段。应用程序还使用javascript进行客户端功能。 您会注意到会话变量限制循环 登录页面。在切换用户并尝试授权应用时,我发现这是一个问题。

很多, 奥伦。

...
// Create the Facebook application instance 
$facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $app_secret,
));

// Get FB User ID
$user_id = $facebook->getUser();
$user_profile = null;   

// Session based API call.
if ($user_id) {
        try {
            $user_profile = $facebook->api('/me');
        } catch (FacebookApiException $e) {
            error_log($e);
            $user_id = null;  
        }
}

// login or logout url will be needed depending on current user state.
if ($user_id) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl   = $facebook->getLoginUrl(
        array (
            'scope' => "$auth_list"
        )); 
}

// If not logged on - login and restart - avoid a loop when switching users
$avoid_loop_var = 'fb_'.$app_id.'_avoid_loop';
$avoid_loop = $_SESSION[$avoid_loop_var];
if (($state)&&(!$avoid_loop)) {
    $_SESSION[$avoid_loop_var] = false; 
}
if ((!$user_id)&&(!$avoid_loop)) {
    $_SESSION[$avoid_loop_var] = true; 
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
$_SESSION[$avoid_loop_var] = false; 

...

0 个答案:

没有答案