Приложение не добавлено в закладки приложения пользователя - PullRequest
0 голосов
/ 20 октября 2011

Я разрабатываю приложение Facebook с последней версией PHP SDK V3.1.1. Новым пользователям, добавляющим приложение, нет приложения, указанного в списке приложений на домашней странице.В прошлом это работало просто пользователем, авторизующим приложение.

Какие-нибудь советы, как заставить это работать?

См. Фрагмент кода ниже.Приложение также использует 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; 

...
...