significa - Cómo permitir que el botón de inicio de sesión de Facebook redirija a una URL en particular
que significa vista previa en facebook (2)
Esta es la información en el botón de inicio de sesión de Facebook
http://developers.facebook.com/docs/guides/web/
Por lo tanto, generará un botón de inicio de sesión, y un usuario puede hacer clic en él para iniciar sesión en Facebook (aparecerá una ventana de inicio de sesión). Pero después de que el usuario inicie sesión, aunque los botones Me gusta o Compartir funcionen ahora, el Log in el botón todavía se muestra.
1) ¿Hay alguna forma de redirigir a una URL después de que el usuario inicie sesión correctamente?
2) Otra forma es cambiar dinámicamente el botón Iniciar sesión a invisible o mejor aún, mostrarlo como "Iniciado como [Peter (nombre de usuario)]"
¿Cómo pueden (1) y / o (2) hacerse? (No veo una URL de devolución de llamada en la configuración de la aplicación de Facebook y también la redirección puede necesitar ir a una URL diferente de la página A o de la página B en el sitio web)
Actualización: Encontré información sobre <fb:login-button on-login="top.location = ''...''; ">
pero veo que algunos sitios web hacen el redireccionamiento pero no hay on-login=''...''
1) También puede redireccionar al iniciar sesión usando algún código como este (observe el evento auth.login
):
<script src="http://connect.facebook.net/en_US/all.js">
</script>
<script>
FB.init({
appId: ''??????????????'', cookie: true,
status: true, xfbml: true
});
FB.Event.subscribe(''auth.login'', function () {
window.location = "http://example.com";
});
</script>
<fb:login-button>
Login with Facebook
</fb:login-button>
2) Para determinar si mostrar u ocultar el botón de inicio de sesión, puede usar FB.getLoginStatus
para descubrir si el usuario ha iniciado sesión. La siguiente página puede ser útil: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
Opción FBML: Esto debería darle la funcionalidad que desea (con xfbml:true
en FB.init
):
<fb:login-button autologoutlink="true" onlogin="OnRequestPermission();">
</fb:login-button>
Cuando el usuario inicia sesión, cambia a "Cerrar sesión". Además, si el usuario no ha otorgado permisos a la aplicación, abre el cuadro de diálogo de permiso de solicitud.
Opción personalizada: si no le gusta usar FBML, puede crear su propio botón de inicio de sesión de Facebook como este:
HTML:
<button id="THE_BUTTON">Login</button>
Javascript:
FB.init({appId: ''YourAPPID'', status: true, cookie: true, xfbml: true, oauth : true});
FB.getLoginStatus(function(response) {
if (response.status.toString().indexOf("connected")>-1) {
initAll(); //User is connected and granted permissions
FB.api("/me", function (response) {
document.getElementbyId("THE_BUTTON").value =
"Logged in as " + response.name;
});
} else {
// This URL is specially formed to ask permissions for your app. You change the
// permissions and your appID
//redirect_uri = Change this to your desired callback URL
top.location=window.location="http://www.facebook.com/dialog/oauth/?scope=read_stream,publish_stream,friends_photos,friends_activities&client_id="yourAPPID(nobrackets)"&redirect_uri=http://apps.facebook.com/filtered_feed/&response_type=code";
}
});
Por lo tanto, si el usuario está conectado, el botón se reemplazará por "Iniciado como nombre de usuario ". De lo contrario, aparecerá el cuadro de diálogo OAuth.