Пример #1
0
/* if we have a token AND program state is 'start', change state to 'returned' */
if ($_SESSION['fb_request_token'] != NULL && $_SESSION['fb_state'] === 'start') {
    $_SESSION['fb_state'] = $state = 'returned';
}
/*
 * 'default': Get a request token from Facebook for new user
 * 'returned': The user has authorize the app on Facebook
 */
switch ($state) {
    default:
        $fs = new FacebookStream($consumer_key, $consumer_secret, $agent);
        $token = $fs->getAccessToken();
        /* Save token for later */
        $_SESSION['fb_request_token'] = $token;
        $url = 'http://www.facebook.com/login.php?api_key=';
        $url .= $fs->getApiKey();
        $url .= '&v=1.0&auth_token=';
        $url .= $token;
        header('Location:' . $url);
        exit;
    case 'returned':
        $fs = new FacebookStream($consumer_key, $consumer_secret, $agent);
        if (!empty($infinite_session) && $_SESSION['fb_userid'] > 0) {
            /* Infinite session, headless mode, use FB UserID from database to skip to the API call */
            $fs->streamRequest($_SESSION['fb_userid']);
        } elseif ($_SESSION['fb_session'] === NULL && $_SESSION['fb_userid'] === NULL) {
            /* If the access tokens are already set skip to the API call */
            /* Create session */
            $session = $fs->getSession($_SESSION['fb_request_token']);
            /* Save the session data */
            $_SESSION['fb_session'] = (string) $session->session_key;