2011-08-05 16 views
6

Soy nuevo en PHP y me ha resultado muy difícil entender el sistema de inicio de sesión de Facebook.Incorporación de inicio de sesión de Facebook, usando Facebook php-sdk (v.3.0.0), con sesiones y cookies

He descargado los tres archivos src/de github (https://github.com/facebook/php-sdk/). Intenté usar el archivo example.php para comenzar. Sin embargo, no estoy seguro de qué hacer con eso.

Para aquellos que no están familiarizados con el archivo, aquí es una copia de ejemplo.php, con algunos de los estilo Eliminado:

require '../src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '...', 
    'secret' => '...', 
)); 
$user = $facebook->getUser(); 
if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 
$naitik = $facebook->api('/naitik'); 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($user): ?> 
     <a href="<?php echo $logoutUrl; ?>">Logout</a> 
    <?php else: ?> 
     <div> 
     Login using OAuth 2.0 handled by the PHP SDK: 
     <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
     </div> 
    <?php endif ?> 

    <h3>PHP Session</h3> 
    <pre><?php print_r($_SESSION); ?></pre> 

    <?php if ($user): ?> 
     <h3>You</h3> 
     <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> 

     <h3>Your User Object (/me)</h3> 
     <pre><?php print_r($user_profile); ?></pre> 
    <?php else: ?> 
     <strong><em>You are not Connected.</em></strong> 
    <?php endif ?> 

    <h3>Public profile of Naitik</h3> 
    <img src="https://graph.facebook.com/naitik/picture"> 
    <?php echo $naitik['name']; ?> 
    </body> 
</html> 

Estas son las preguntas que tengo en lo que se refiere a la misma:

1) ¿Qué ocurre con las cookies? - Deseo que el usuario pueda iniciar sesión en mi sitio web después de volver a abrir su navegador.

2) ¿Cuál es el mínimo indispensable que necesito para salir de este archivo example.php para validar/registrar un usuario, comenzar una sesión, almacenar la sesión en una cookie, obtener la identificación de usuario fb del usuario, nombre fb, imagen fb, y lista de amigos fb?

3) En los src/archivos, hay un 'archivo fb_ca_chain_bundle.crt,' y no estoy completamente familiarizado con el tipo de archivo, y no estoy seguro de si es necesario. ¿Cual es su propósito?

4) La línea $naitik = $facebook->api('/naitik'); es "naitik" el nombre de usuario de esta persona, así que si escribo facebook.com/naitik, ¿se mostrará su perfil público? está reemplazando "/ naitik" por "/ me" ¿qué obtendrá el perfil público de la persona que inició sesión en Facebook?

5) ¿Cómo obtengo el token de acceso y cómo lo uso en mi código?

6) Cuando creo una sesión para el usuario y una cookie para que el usuario inicie sesión después de volver a abrir el navegador, ¿qué debería almacenar exactamente en mis sesiones y cookies?

Sé que esta es una gran cantidad de preguntas, pero he revisado muchos tutoriales en línea, y ninguno de ellos ha hecho un buen trabajo explicando esto, sobre todo porque solo vuelven a enlazar a los archivos de PHP-SDK de Github. Además, la mayoría de ellos explica una versión anterior de PHP-SDK. Se agradece cualquier ayuda, con cualquiera de las preguntas.

+0

[Thinkdiff] (http://thinkdiff.net/) tiene algunos tutoriales más o menos actualizados sobre el tema. –

Respuesta

7

para responder a sus preguntas

1) ¿Qué pasa con las cookies?

Usted acaba de agregar un parámetro a la inicialización de Facebook. Cambiar a la siguiente

$facebook = new Facebook(array(
    'appId' => '...', 
    'secret' => '...', 
    'cookie' => true, 
)); 

2) ¿Cuál es el mínimo que necesito para salir de este archivo ejemplo.php a ....

No todo lo que se desea es en este ejemplo. La mitad superior del código muestra cómo conectar y validar un usuario. La segunda mitad simplemente vuelca sus detalles básicos y los detalles de Naitik. Para el resto, debes buscar más.

3) En las src/archivos, hay uno 'fb_ca_chain_bundle.crt archivo,'

La finalidad de este fichero es la de ofrecer una solución para el error CURL 60.Leer esto:

http://www.takwing.idv.hk/blog/2011/php-sdk-demystified-%E2%80%93-how-curl-error-60-is-handled/

4) La línea de $ Naitik = $ facebook-> api ('/ Naitik'); es "naitik" el nombre de usuario de esta persona, entonces, si escribo facebook.com/naitik ¿mostrará su perfil público? está reemplazando "/ naitik" por "/ me" ¿qué obtendrá el perfil público de la persona que inició sesión en Facebook?

Exactamente

5) ¿Cómo puedo obtener el token de acceso, y cómo lo uso en mi código?

$ facebook-> getAccessToken();

Agregue algunas de las llamadas a métodos, pero no es necesario para todo.

6) Cuando creo una sesión para el usuario y una cookie para que el usuario inicie sesión después de volver a abrir el navegador, ¿qué debería almacenar exactamente en mis sesiones y cookies?

El Facebook SDk se encargará de eso. Solo deberá almacenar la información adicional sobre el usuario que requiera su aplicación.

+0

Gran respuesta. ¿Alguna idea sobre cómo iniciar sesión en un usuario automáticamente? Esto sería útil para una aplicación de Facebook. –

+0

La documentación de Facebook sugiere que para el token de acceso se publique en "https://graph.facebook.com/oauth/access_token?" . "client_id =". $ app_id. "y redirect_uri =". urlencode ($ my_url) . "& client_secret =". $ app_secret. "y código =". $ code; Por lo tanto, no estoy seguro si la llamada anterior sugerida en 5 es la recomendada. – pal4life

Cuestiones relacionadas