Tengo el suiguiente archivo para el modelo del componente:
Código PHP:
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.modelitem');
class facebookModelfacebook extends JModelItem
{
protected $estado_fb;
public function getEstado()
{
require_once( JPATH_COMPONENT.DS.'clase_facebook.php' );
$facebook = new Facebook(array(
'appId' => 'xxxxxx',
'secret' => 'xxxxxxxxx',
'req_perms' => 'email, user_location, user_education_history',
));
$user_fb = $facebook->getUser();
if ($user_fb) {
try {
$info_usuario_facebook = $facebook->api('/me');
}
catch (FacebookApiException $e) {
print($e);
$user = 0;
}
}
if($user_fb){
$estado_fb="Conectado co el mail: ".$info_usuario_facebook['email'];
}
else
{
$urlLogin=$facebook->getLoginUrl(array('scope'=>'email, user_location, user_education_history'));
header('location:'.$urlLogin);
}
if (!isset($this->estado_fb))
{
$this->estado_fb= $estado_fb;
}
return $this->estado_fb;
}
}
?>
Facebook te redirecciona con una url del tipo
index.php?option=com_facebook?status=xxxxx...&code =xxxx....
Pero joomla me vuelve directamente a index.php?option=com_facebook, como si joomla interpretase que no ha solicitado los parametros status y code y los elimina. Entonces al ejecutarse el codigo del compoente entro en un bucle por el header, ya que siempre evalua $user a false.
¿Alguien sabe que debo hacer o donde esta el fallo? Es lo primero que hago en joomla y estoy bastante perdido.
Un saludo