Как обойти метод входа в Facebook PHP, если у вас уже есть действительный auth_token

StackOverflow https://stackoverflow.com/questions/6803953

Вопрос

Я использую эту библиотеку для доступа к API графов Facebook в своем проекте codeigniter:http://www.haughin.com/code/facebook/

Мое веб-приложение использует Facebook JS SDK для аутентификации пользователей на стороне клиента, а затем сразу после завершения входа в систему идентификатор пользователя и объект сеанса отправляются на мой сервер через запрос AJAX.Я хочу вызвать API-интерфейс графа с сервера, чтобы получить основную информацию о пользователе, поэтому мне интересно, есть ли способ обойти необходимость вызова метода facebook->login() для получения сеанса через перенаправление с Facebook?Кто-нибудь знает, как это сделать?

Это было полезно?

Решение

Я вообще не рекомендую Facebook SDK.У вас будет гораздо больше контроля, если вы будете делать что-то самостоятельно, и это станет намного проще.Просто настройте функцию cURL, например:

function curl($url, $request = 'GET'){
    $ch = curl_init();
    $curlopt = array(
        CURLOPT_URL => $url,
        CURLOPT_CUSTOMREQUEST => $request,
        CURLOPT_CONNECTTIMEOUT => 10,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 60,
        CURLOPT_USERAGENT      => 'facebook-php-2.0',
    );
    curl_setopt_array($ch, $curlopt);
    $response = curl_exec($ch);
    if($response === false)
        trigger_error(curl_error($ch));
    curl_close($ch);
    return $response;
}

А затем функция API Facebook, например:

function fb_api($url, $access_token = false, $request = 'GET'){
    $url = 'https://graph.facebook.com/'.$url;
    if($access_token)
        $url .= (strstr($url, '?') ? '&' : '?').'access_token='.$access_token;
    return json_decode(curl($url, $request), true);
}

Затем вы можете сделать запрос к графическому API, например:

fb_api('me', $access_token);

Другие советы

Если, потому что каким -то образом у вас нет установки завивки, вы всегда можете использовать мою прокси -библиотеку: http://codeigniter.com/forums/viewthread/186250/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top