Pregunta

Estoy usando esta biblioteca para el acceso a la API de Graph Facebook dentro de mi proyecto CodeInigniter:http://www.haughin.com/code/facebook/

Mi aplicación web utiliza el SDK de Facebook JS para autenticar a los usuarios del lado del cliente, luego inmediatamente después de que se completa un inicio de sesión, el ID de usuario del usuario y el objeto de sesión se envían a mi servidor a través de una solicitud AJAX. Quiero hacer una llamada a la API del gráfico desde el servidor para recibir la información básica del usuario, por lo que me pregunto si hay una manera que pueda evitar la necesidad de llamar al método Facebook-> Login () para recibir una sesión a través de un ¿Redirigir desde Facebook? Alguien sabe cómo hacer esto?

¿Fue útil?

Solución

No recomiendo el SDK de Facebook en absoluto. Tienes mucho más control si haces las cosas tú mismo y se vuelve mucho más simple. Simplemente configure una función de curl como:

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;
}

Y luego una función de API de Facebook como:

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);
}

Luego puede hacer su solicitud a la API de gráficos como:

fb_api('me', $access_token);

Otros consejos

Si, porque de alguna manera no tienes curl instalado, siempre puedes usar mi biblioteca proxy: http://codeigniter.com/forums/viewthread/186250/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top