2010-06-27 23 views
12

Tengo problemas para intentar conectar mi sitio web a Facebook. Lo que me gustaría hacer es permitir a los usuarios aumentar sus cuentas conectándolas a Facebook (no necesito que las personas puedan iniciar sesión con Facebook, en su lugar estoy usando OpenID). Mi sitio web se ejecuta en el marco CodeIgniter.Agregar Facebook Conectarse a un sitio web de CodeIgniter

Lo que haré es eliminar todo lo que he intentado y guiarlo paso por paso hasta que deje de funcionar.

Paso 1: Configurar el SDK de JavaScript y XFBML

Primera agrego una referencia a la especificación FBML a mi <html> etiqueta:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 

Entonces, después de mi etiqueta <body>, añado :

<script src="http://static.new.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script> 

Ahora aquí viene el primer problema que tuve but have now solved. El problema era que los documentos para el SDK de JavaScript dicen que el método FB.init()requires the appId como parámetro, pero esto resultó ser incorrecto. Necesitaba pasar mi apiKey en su lugar. Así que este es el código que terminé con, que va delante de mi etiqueta de </body>:

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
     apiKey : '<?php echo $this->config->item('facebook_api_key'); ?>', 
     status : true, 
     cookie : true, 
     xfbml : true 
    }); 

</script> 

Ahora puede agregar entidades XFBML a mis páginas, como <fb:login-button></fb:login-button> Su funcionamiento es como se esperaba. Hago clic en él y aparece una ventana que me pregunta si quiero permitir que mi sitio web acceda a mi perfil de Facebook. Digo que sí y, luego, si reviso la Configuración de mi aplicación en Facebook, puedo ver que se ha agregado mi sitio web.

Así que este paso funciona bien.

Paso 2: Configuración de la biblioteca PHP

bien, así que ahora tengo que añadir la librería PHP. Así que una rápida búsqueda en Google para 'codeigniter facebook library' revela Elliot Haughin's library. Descargo los archivos, los coloco en los lugares correctos y luego me pongo a trabajar en la carga de la biblioteca.

Ahora se produce el problema actual. Agrego el siguiente código (tomado del ejemplo dado con la biblioteca) a mi controlador de constructor para que ocurra en cada página:

$this->load->library('facebook_connect'); 
$this->data['fb_user'] = $this->facebook_connect->user; 
$this->data['fb_userid'] = $this->facebook_connect->user_id; 

Pero si lo hago print_r($this->data['fb_user']); no consigo nada. Nunca. Ya sea que haya iniciado sesión en Facebook, haya cerrado la sesión, haya iniciado sesión y agregado mi sitio a mi perfil, etc., etc., el usuario y el ID de usuario nunca se configuran. No obstante, no tengo ningún error.

Por lo que sé, se supone que los valores deben establecerse para que sepa si la persona que navega por mi sitio ha iniciado sesión en su cuenta de Facebook. Si lo son, puedo ver si han permitido mi aplicación. Si lo permitieron, puedo dejar que se desconecten de mi sitio, si no, puedo dejar que se conecten. Pero no puedo hacer nada si estas variables no están pobladas.

He intentado hurgar en el origen de la biblioteca, pero realmente no puedo entenderlo. Y espero que la solución real para esto no implique hackear la biblioteca. Esperaría que una biblioteca específica de CodeIgniter funcione.

¿Alguna idea?

Muchas gracias. :)

+0

Facebook tiene un php-sdk oficial que funciona bien en codeigniter ... http: // jondavidjohn.com/b/P – jondavidjohn

Respuesta

2

Probar this Facebook Library por Danny Tran alojado en Github. Funciona de maravilla y es bastante fácil de configurar.

1

¿Agregó el archivo xd_reciever a su directorio público ????

Probabilidad esto puede causar el problema bcoz xd_reciever deifine el canal entre su aplicación a Facebook.

2
+2

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la crítica] (/ review/low-quality-posts/18783148) –

Cuestiones relacionadas