Используя Facebook PHP-SDK, как я могу определить, вышел ли пользователь из Facebook? - PullRequest
1 голос
/ 02 февраля 2012

Я создаю простое проверенное веб-приложение, которое интегрируется с Facebook. Базовая функциональность заключается в том, что он должен отображать основную информацию о пользователе и несколько фотографий его друзей + друзей. Все это работает, за исключением выхода из системы - когда пользователь нажимает ссылку выхода из системы в моем веб-приложении, созданную с помощью PHP-SDK Facebook, страница просто обновляется - пользователь явно все еще вошел в мое веб-приложение. , Они, однако, вышли из собственно Facebook. Есть идеи, почему я вижу это поведение? Мой код выглядит следующим образом:

<code><?php

require 'sdk/facebook.php';

$facebook = new Facebook(
    array(
        'appId' => 'xxx' //actual app ID and secret go here,
        'secret' => 'xxx'
    )
);

##
## Instantiate user object if a logged in user exists
if ($user = $facebook->getUser()) {
    try {
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        $user = NULL;
    }
}

##
## Set login/logout url
$url = $user ? $facebook->getLogoutUrl() : $facebook->getLoginUrl();

##
## Instantiate friend object data
if ($user) {
    try {
        $friend_api_data = $facebook->api('/me/friends');
        $friends = $friend_api_data['data'];
        // Shuffle friends
        shuffle($friends);
        $shuffled_friends = array();
        for ($i = 0; $i < count($friends) && $i < 6; $i++) {
            $shuffled_friends[] = $friends[$i];
        }   
    } catch (FacebookApiException $e) {

    }

}

?>
<!doctype html>
<html>
<head>
    <title>Test</title>
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <div class="container">
        <h1>Facebook Integration</h1>

        <!-- Login/Logout URL -->
        <a href="<?= $url ?>"><?= $user ? 'Logout' : 'Login' ?></a>

        <!-- Current User Data -->
        <?php if ($user): ?>
            <h2>Hi, <?= $user_profile['name'] ?></h2>
            <img src="https://graph.facebook.com/<?= $user ?>/picture" />

            <pre>
                <?= print_r($user_profile, TRUE) ?>
            
<? php endif; ?> <! - Данные Друга -> <? php if ($ shuffled_friends):?>

Ваши друзья

<? php endif; ?>

1 Ответ

0 голосов
/ 02 февраля 2012

Если вы используете версию 3 SDK PHP, вам также потребуется вызвать функцию destroySession, поскольку она сохраняет пользовательские данные в сеансе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...