2012-08-07 36 views
11

Stackoverflow utilizza diversi modi per accedere al proprio sito Web, ad es. con il login di facebook.Come aggiungere l'accesso di facebook al mio sito web?

Con i social plug-in di Facebook (vedere social plugins) è possibile aggiungere un pulsante simile o un accesso di Facebook. Ma come viene gestito da StackOverflow per connettere l'account facebook con un account stackoverflow?

+0

Per esempio c'è la registrazione plug proprio lì sulla pagina si è collegato. E ci sono modi per implementarlo da solo, naturalmente: basta che l'utente si connetta alla tua app, ottenga le informazioni necessarie e crei un nuovo account con il sistema di login delle tue pagine. – CBroe

risposta

4

Il plug in di accesso di Facebook fornisce solo un modo per registrare l'utente nel sito Web. Devi fare da solo il collegamento al tuo sistema interno (come fa StackOverflow). Ciò significa creare un nuovo "utente" in base ai dettagli dell'utente di Facebook.

Ad esempio, se il sito Web utilizza l'indirizzo di posta elettronica come "nome utente", è necessario chiedere agli utenti di Facebook di fornire il proprio indirizzo di posta elettronica o chiedere l'autorizzazione dell'indirizzo email. Quindi, si crea un nuovo account per l'utente e si dà loro una password casuale.

È inoltre necessario modificare il flusso di accesso in modo che gli utenti esistenti possano accedere con la propria e-mail/password o il proprio account Facebook associato.

7

Facebook Social Plugin: Il pulsante di login Facebook offre una miriade di quelli che chiamano plugin social. Quello che ci interessa è il pulsante Login. Ecco i passaggi di base necessari per inserire il pulsante nella tua pagina Web:

Hai bisogno di un'app Facebook per il tuo sito. Vai a https://developers.facebook.com/apps/ e fai clic sul pulsante "Crea nuova app".

Il tuo "Nome visualizzato app" può essere qualcosa di significativo. Di solito vado con il nome di dominio per il sito. Puoi utilizzare la stessa app anche per altri scopi in futuro. Lo "Spazio dei nomi app" deve essere qualcosa che non contenga caratteri speciali. Di solito utilizzo il nome visualizzato dell'app senza spazi, punti, ecc. Ora devi inserire il tuo "dominio app" e il sito web "URL sito". Per il dominio dell'app, inserisci il nome del dominio su cui è ospitato il tuo sito. Per l'URL del sito inserisci l'URL completo del tuo sito web. Ad esempio, se il tuo dominio è name.com, l'URL del tuo sito dovrebbe essere qualcosa come http://www.name.com. Salvare le modifiche dopo aver inserito le informazioni corrette. Ora avrai una pagina che mostra il tuo "ID App" e "App Secret". Lascia aperta la pagina perché avrai bisogno dell'ID app quando aggiungi il codice del pulsante di accesso alla tua pagina. Ora dobbiamo ottenere il codice del pulsante di accesso da Facebook. Vai a http://developers.facebook.com/docs/reference/plugins/login/ e fai clic sul pulsante "Ottieni codice". Copia il codice HTML5 dalla prima casella e per ora mettilo appena sotto la scheda del corpo della tua pagina web. Il codice dovrebbe essere qualcosa di simile:

<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> 

Nel codice di assicurarsi di sostituire APP_ID con l'App ID creato per la vostra app Facebook. Ora incollare il codice dalla seconda casella in qualunque posto si desideri che risieda il pulsante di accesso. Il codice dovrebbe essere simile:

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

ho cambiato le-show-facce dati attribuiscono alla falsa perché con esso impostata su true il pulsante di disconnessione non renderà quando l'utente è connesso.

0

seguire questo codice dopo la registrazione app e fb sdk scaricare:

<?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>'; 
 
}

Problemi correlati