Как обойти Facebook метод входа в PHP, если у вас уже есть действительный auth_token - PullRequest
1 голос
/ 24 июля 2011

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

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

Ответы [ 2 ]

2 голосов
/ 24 июля 2011

Я вообще не рекомендую 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);

0 голосов
/ 24 июля 2011

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

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