2012-08-07 1 views
11

Stackoverflow utiliza diferentes formas de iniciar sesión en su sitio web, p. con el inicio de sesión de Facebook¿Cómo agregar el inicio de sesión de Facebook a mi propio sitio web?

Con los complementos sociales de Facebook (consulte social plugins) puede agregar un botón Me gusta o un inicio de sesión de Facebook. Pero, ¿cómo se gestiona con stackoverflow para conectar la cuenta de Facebook con una cuenta de stackoverflow?

+0

Por ejemplo está el registro de plugins allí mismo, en la página enlazada. Y hay formas de implementarlo usted mismo, por supuesto: simplemente haga que el usuario se conecte a su aplicación, obtenga la información que necesita y cree una nueva cuenta con el sistema de inicio de sesión de su página. – CBroe

Respuesta

4

El complemento de inicio de sesión de Facebook solo proporciona una forma de registrar al usuario en su sitio web. Debe hacer el Enlace a su sistema interno usted mismo (como lo hace StackOverflow). Esto significa crear un nuevo "Usuario" basado en los detalles del Usuario de Facebook.

Por ejemplo, si su sitio web utiliza la dirección de correo electrónico como el "nombre de usuario", debe solicitar a los usuarios de Facebook que brinden su dirección de correo electrónico o soliciten el permiso de la dirección de correo electrónico. Luego, crea una cuenta nueva para el usuario y le da una contraseña aleatoria.

También debe cambiar el flujo de inicio de sesión para que los usuarios existentes puedan iniciar sesión con su correo electrónico/contraseña o su cuenta de Facebook asociada.

7

Facebook Social Plugin: El botón de inicio de sesión Facebook ofrece un host de lo que ellos llaman los complementos sociales. El que nos interesa es el botón de inicio de sesión. Estos son los pasos básicos para obtener el botón en su página web:

Necesita una aplicación de Facebook para su sitio. Vaya a https://developers.facebook.com/apps/ y haga clic en el botón "Crear nueva aplicación".

Su "Nombre de visualización de la aplicación" puede ser algo significativo. Normalmente voy con el nombre de dominio para el sitio. Puede usar esta misma aplicación para otros fines en el futuro también. El "Espacio de nombres de la aplicación" debe ser algo que no contenga ningún carácter especial. Normalmente uso el nombre para mostrar de mi aplicación sin espacios, puntos, etc. Ahora debe ingresar su "Dominio de la aplicación" y la "URL del sitio" del sitio web. Para el dominio de la aplicación, ingrese el nombre de dominio en el que se aloja su sitio. Para la URL del sitio ingrese la URL completa de su sitio web. Por ejemplo, si su dominio es name.com, la URL de su sitio debe ser algo así como http://www.name.com. Guarde sus cambios una vez que haya ingresado la información adecuada. Ahora tendrá una página que muestra su "ID de la aplicación" y "Secreto de la aplicación". Simplemente deje esa página abierta porque necesitará su ID de aplicación cuando agregue el código del botón de inicio de sesión a su página. Ahora tenemos que obtener el código del botón de inicio de sesión de Facebook. Vaya a http://developers.facebook.com/docs/reference/plugins/login/ y haga clic en el botón "Obtener código". Copie el código HTML5 del primer cuadro y, por ahora, colóquelo justo debajo de la pestaña del cuerpo de su página web. El código debería ser algo como esto:

<div id="fb-root"></div> 
<script> 
    (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/en_US/all.js#xfbml=1&appId=APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
    } (document, 'script', 'facebook-jssdk')); 
</script> 

En el código asegúrese de reemplazar APP_ID con el ID de la aplicación que creó para su aplicación de Facebook. Ahora pegue el código del segundo cuadro en el lugar donde desee que resida el botón de inicio de sesión. El código debe ser algo como:

<div class="fb-login-button" data-show-faces="false" data-width="200" data-max-rows="1"></div> 

cambié la ficha show-caras atribuyen a falso, porque con ella el valor true en el botón de cierre de sesión no quede inutilizada cuando el usuario está conectado.

0

seguir este código de registro después de la aplicación y fb descarga del SDK:

<?php 
 
require_once('lib/Facebook/FacebookSession.php'); 
 
require_once('lib/Facebook/FacebookRequest.php'); 
 
require_once('lib/Facebook/FacebookResponse.php'); 
 
require_once('lib/Facebook/FacebookSDKException.php'); 
 
require_once('lib/Facebook/FacebookRequestException.php'); 
 
require_once('lib/Facebook/FacebookRedirectLoginHelper.php'); 
 
require_once('lib/Facebook/FacebookAuthorizationException.php'); 
 
require_once('lib/Facebook/GraphObject.php'); 
 
require_once('lib/Facebook/GraphUser.php'); 
 
require_once('lib/Facebook/GraphSessionInfo.php'); 
 
require_once('lib/Facebook/Entities/AccessToken.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookCurl.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookHttpable.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookCurlHttpclient.php'); 
 

 

 
use Facebook\FacebookSession; 
 
use Facebook\FacebookRedirectLoginHelper; 
 
use Facebook\FacebookRequest; 
 
use Facebook\FacebookResponse; 
 
use Facebook\FacebookSDKException; 
 
use Facebook\FacebookRequestException; 
 
use Facebook\FacebookAuthorizationException; 
 
use Facebook\GraphObject; 
 
use Facebook\GraphUser; 
 
use Facebook\GraphSessionInfo; 
 

 
use Facebook\FacebookHttpable; 
 
use Facebook\FacebookCurlHttpClient; 
 
use Facebook\FacebookCurl; 
 

 

 

 
session_start(); 
 
$app_id=""; 
 
$app_secret=""; 
 
$redirect_url=""; 
 
FacebookSession::setDefaultApplication($app_id,$app_secret); 
 
$helper=new FacebookRedirectLoginHelper($redirect_url); 
 
$sess=$helper->getSessionFromRedirect(); 
 
if(isset($sess)){ 
 
\t $request=new FacebookRequest($sess,'GET','/me'); 
 
\t $response=$request->execute(); 
 
\t $graph=$response->getGraphObject(GraphUser::classname()); 
 
\t $name=$graph->getName(); 
 
\t echo 'hi $name'; 
 
\t 
 
} 
 
else 
 
{ 
 
\t echo '<a href="'.$helper->getLoginUrl().'">Login with Facebook</a>'; 
 
}

Cuestiones relacionadas