Estoy desarrollando un inicio de sesión con facebook usando javascript.
El caso es el siguiente, cuando inicias sesión con facebook, te cambia el botón y se activa el de Logout, Pero quiero que cuando inicie sesión me rediriga a otro archivo php para poder gestionar los datos del usuario e introducirlos en la Base de Datos.
Los usuarios que se registran normal van a un archivo php donde me introduce los datos en la BD y ese archivo con ajax me redirige dentro de la web.
Quiero hacer lo mismo pero con Facebook.
Os dejo el código Javascript:
<script>
                            // Constantes de control de estado en Facebook
                            // https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
                            var APP_ID = 'XXXXXXXXXXXXXXXXXXXXXX';
                            var CHANNEL_URL= 'XXXXXXXXXXXXXXX';
                            var STATUS_CONNECTED = 'connected';
                            var STATUS_NOT_AUTHORIZED = 'not_authorized';
                            var STATUS_UNKNOWN = 'unknown';
                            var PERMISSIONS  = {scope: 'email, user_about_me, user_birthday, publish_stream'};
                            var uid;
                            var accessToken;
                            var isLogginProcess = false;
                            function writeOutput(msg)
                            {
                                var $output = $('.output');
                                var content = $output.html();
                                $('.output').html(content + msg + '<br/>');
                            }       
                            function doLogin (ev)
                            {
                                writeOutput('Solicitando login...');
                                isLogginProcess = true;
                                FB.login(controlarStatus, PERMISSIONS);
                            }
                            function doAuthorize (ev)
                            {
                                writeOutput('Solicitando autorización...');
                                isLogginProcess = true;
                                FB.login(controlarStatus, PERMISSIONS);
                            }
                            function doLogout (ev)
                            {
                                writeOutput('Solicitando logout...');
                                FB.logout(controlarStatus);
                            }
                            function authResponseChange (respuesta)
                            {
                                writeOutput('Evento AuthResponseChange: '+respuesta.status);
                                controlarStatus(respuesta);
                            }
                            function statusChange (respuesta)
                            {
                                writeOutput('Evento StatusChange: '+respuesta.status);
                                controlarStatus(respuesta);
                            }
                            function controlarStatus(respuesta)
                            {
                                if (respuesta.authResponse)
                                {
                                    writeOutput('Control status (con respuesta): '+respuesta.status);
                                    if (respuesta.status === STATUS_CONNECTED) 
                                    {
                                        /* 
                                            El usuario está logueado y además ha sido autenticado por
                                            la aplicación. En este caso, respuesta.authResponse contiene el ID 
                                            del usuario, un token de acceso válido, una petición firmada y el momento
                                            en que el token de acceso y la petición firmada caducarán
                                        */
                                        // Podriamos guardar datos como el userID y el token de acceso
                                        uid = respuesta.authResponse.userID;
                                        accessToken = respuesta.authResponse.accessToken;
                                        $('#logout').show();
                                        $('#authorize').hide();
                                        $('#login_facebook').hide();
                                    } 
                                    else if (respuesta.status === STATUS_NOT_AUTHORIZED) 
                                    {
                                        /*
                                            El usuario está logueado en Facebook, pero no ha sido autenticado
                                            por la aplicación. Se debería permitir mediante un botón o enlace (si se
                                            hace de forma automática, el cuadro de diálogo puede ser interpretado como 
                                            un popup a bloquear).
                                        */
                                        $('#authorize').show();
                                        $('#logout').show();
                                        $('#login_facebook').hide();
                                    } 
                                    else 
                                    {
                                        // El usuario no está logueado en Facebook
                                        $('#login_facebook').show();
                                        $('#authorize').hide();
                                        $('#logout').hide();
                                    }
                                }
                                else
                                {
                                    writeOutput('Control Status (sin respuesta): '+respuesta.status);
                                    if (isLogginProcess)
                                    {
                                        // Si el usuario viene de un proceso de login, es posible que 
                                        // haya dado a cancelar en la ventana, por lo que internamente
                                        // solicitamos un nuevo control de estado del usuario
                                        // El parámetro true es fundamental para que la petición no se
                                        // cachee, y por tanto obtengamos el estado real
                                        isLogginProcess = false;
                                        FB.getLoginStatus(controlarStatus, true);
                                    }
                                    if (respuesta.status === STATUS_NOT_AUTHORIZED) 
                                    {                   
                                        $('#authorize').show();
                                        $('#login_facebook').hide();
                                        $('#logout').hide();
                                    }
                                    else 
                                    {
                                        $('#login_facebook').show();
                                        $('#authorize').hide();                 
                                        $('#logout').hide();
                                    }
                                }
                                writeOutput('----------------------------------');
                            }
                            function init()
                            {
                                // FB.Event.subscribe('auth.login', controlarStatus);
                                // FB.Event.subscribe('auth.statusChange', statusChange);
                                FB.Event.subscribe('auth.authResponseChange', authResponseChange);
                                FB.getLoginStatus(controlarStatus, true);
                                $('#login_facebook').on('click', doLogin);
                                $('#authorize').on('click', doAuthorize);
                                $('#logout').on('click', doLogout);
                            }
                            /*
                            ** Versión de uso convencional
                            ** que no dependiera de jQuery
                            */
                            window.fbAsyncInit = function() {
                                // Inicialización del SDK JavaScript para Facebook
                                FB.init({
                                  appId     : APP_ID,       // App ID para conexión con Facebook
                                  channelUrl: CHANNEL_URL,  // Ruta al fichero channel para cross-domain
                                  status    : false,        // Comprobar el estado de login de inicio
                                  xfbml     : true          // true para compatibilidad con social plugins
                                });
                                // Aquí, ya podemos inicializar nuestros procesos
                                init();         
                            }; 
                            // Carga del SDK de forma asíncrona
                            (function(d, s, id) {
                                var js, fjs = d.getElementsByTagName(s)[0];
                                if (d.getElementById(id)) {return;}
                                js = d.createElement(s); js.id = id;
                                js.src = "//connect.facebook.net/es_ES/all.js";
                                fjs.parentNode.insertBefore(js, fjs);
                            }(document, 'script', 'facebook-jssdk')); // */
                            </script>


