Oggi giorno è diventato una modo molto comune per permettere ai visitatori del tuo sito per connettersi con le proprie credenziali a facebook usare il pulsante “Connect with Facebook” o “Accedi con Facebook”. Facebook Connect consente agli utenti di fornire le autorizzazioni di siti web per accedere ai propri dati, come il sesso, id-mail, data di nascita, ecc. Ci sono siti web che tengono anche il permesso di leggere i feed tutta la news dell’utente e anche di pubblicare aggiornamenti di stato sui muri degli utenti . Facebook Connect è stato intorno dal 2008. In questo post pubblichiamo il Tutorial per integrare database basato Facebook Connect al tuo sito
Facebook ha rilasciato varie SDK (Software Development Kit), come SDK Javascript, PHP SDK e anche SDK per Android e iOS. Dal momento che sono distribuzioni libere ci sono già varie versioni in circolazione , ma la legislazione di facebook e molto ferrea e continua a cambiare molte delle sue configurazioni e come Facebook Connect non sempre vi potrebbe funzionare. Ci sono molti tutorial su Facebook Connect in tutto il web. Ma il problema è appunto che molti sono obsoleti, in alcuni file sono presenti errori, mentre alcuni non forniscono la funzionalità che proprietari di siti web hanno bisogno. Questo Tutorial si propone di venire incontro a tutte queste esigente, ma ci pare ovvio alla base delle premesse fatte che anche qui ci saranno delle mancanze sia volute, nel senso che un tutorial che comprenda tutto è impossibile da realizzare, sia dovute al fatto che facebook nel momento in cui sta
In questo tutorial si dovrebbe imparare a
- Creare un App Facebook
- Login / Logout URL
- Richiesta di autorizzazioni varie
- Utilizzare Facebooks funzione API
- Accedere ai dati di utenti di Facebook come e-mail id, sesso, data di nascita, bio, ecc
- Memorizzare i dati di utenti di Facebook nel nostro database
- Mantenere i dati degli utenti con Session Management
- Entra l’utente dal nostro sito web, mentre lui / lei ancora effettuato l’accesso a facebook
- In questo post pubblichiamo Tutorial per integrare database utilizzando l’SDK PHP per connettere l’utente per questo tutorial
Scaricare SDK PHP
Scarica l’SDK PHP da GitHub si avrebbe solo bisogno la cartella src di questo SDK. Se si vuole si può scartare gli altri file. Dopo aver scaricato l’SDK è necessario creare la tabella per memorizzare tutti i dati degli utenti che utilizzano il “Connect with Facebook” sul tuo sito. In questo esempio sto utilizzando l’ID di campi, nome, e-mail, sesso, Bio e se l’utente si è registrato da facebook
- CREATE TABLE `newmember` (
- `id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
- `name` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
- `email` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
- `gender` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
- `bio` TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci ,
- `face` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
- PRIMARY KEY ( `id` )
- )
Creare l’applicazione su Facebook
Il secondo passo è quello di creare l’applicazione su Facebook. Questo viene fatto per ottenere l’ID App e il Secret Key dell’ applicazione. Quindi, prima andare su http://developers.facebook.com/apps, si potrebbe incontrare una finestra in cui l’applicazione sviluppatore sta chiedendo il permesso di accedere ad alcune delle informazioni di base, tipo messaggio sms o Captcha credo che adesso abbiano messo anche una politica sulla privacy e anche i termini insomma dovrete sicuramente fare qualche operazione.
La creazione dell’APP
Ora, sul lato in alto a destra clicca su “Crea nuova app”.
Ora una finestra simile a quella in basso si potrebbe aprire modello pop-up. Qui è necessario inserire il nome che si desidera la vostra App per la vostra App.e altre domande alcune dovrebbero essere facoltative, usiamo sempre il condizionale in quanto facebook cambia in continuazione e quindi è probabile che non troviate quello che vediamo noi in questo momento.
Indirzzo Url della tua applicazione http e https
Qui è necessario aggiungere i dettagli della tua app. Inserire qui il nome del dominio, l’indirizzo email, la categoria delle app. Allora avete bisogno di parlare di come si sta andando a integrare la tua app con i tuoi amici con il sito web, o se la vostra applicazione è su facebook, o per cellulari. Abbiamo bisogno di fare clic su sito web. Qui abbiamo bisogno di aggiungere l’URL dove stiamo andando per consentire il “Connect with Facebook”. Cliccate poi su “Salva modifiche”. Otterrete cosi’ l’ID App e la tua Key Secret in alto. Salva questi per un ulteriore uso.
Inserimento Chiave Segreta e Applicazione
Per prima cosa creare il file principale di connessione. Creare un file denominato ‘fbconnect.php’. Ora, per salvare i dati degli utenti facebook nel database e utilizzare tali dati per la nostra applicazione dobbiamo fare in modo che questo file sia accessibile solo quando le variabili di sessione in questione non sono impostate.
Si fa in questa maniera
if(!isset($_SESSION[‘user’]))
{
$app_id = “The App ID goes here”;
$app_secret = “The App secret goes here”;
$site_url = “The Site URL goes here”;
Insomma quasi piu’ facile a farsi che a dirsi come potete vedere
La funzione getUser()
Poi abbiamo bisogno di includere il file ‘facebook.php’, che è presente nella cartella src che abbiamo ottenuto con l’ SDK PHP il file zip che avete scaricato all’inizio. Poi, ci sono la creazione di un’istanza di Facebook fornendo le 2 variabili, app_secret $ app_id e $. Poi, per verificare se l’utente è collegato a Facebook o non si può usare il getUser () che restituisce l’id utente dell’utente connesso. Se l’utente non è connesso in poi la variabile $ user conterrà il valore 0. Avremmo bisogno del token di accesso dell’utente di andare avanti con la connessione.
- include “src/facebook.php”;
- $facebook = new Facebook(array(
- ‘appId’ => $app_id,
- ‘secret’ => $app_secret,
- ));
- $user = $facebook->getUser();
Il login e il logout
Quindi, abbiamo bisogno di ottenere l’URL di login e logout. Per ottenere il logout URL è necessario chiamare il getLogoutUrl () la funzione. Per ottenere l’URL di accesso login è necessario chiamare il getLoginUrl () la funzione.
Si potrebbe anche definire l’URL in cui l’utente sarà reindirizzato dopo il login e logout. Con la funzione getLoginUrl () è possibile specificare le autorizzazioni specifiche che si desidera che l’utente che vi conceda. Queste autorizzazioni possono essere specificate nella variabile portata. Qui di seguito, chiedo all’utente le sue informazioni di base come su di lui ed e-mail. Inoltre, per il processo di apprendimento sono comprese le autorizzazioni e read_stream publish_stream che permetterebbero la nostra applicazione di leggere la news feed dell’utente e anche darci il permesso di pubblicare qualcosa al suo muro.
- if($user){
- // Get logout URL
- $logoutUrl = $facebook->getLogoutUrl();
- }else{
- // Get login URL
- $loginUrl = $facebook->getLoginUrl(array(
- ‘scope’ => ‘read_stream, publish_stream, user_about_me, email’,
- ‘redirect_uri’ => $site_url,
- ));
- }
Le Api me e Friends di Facebook
Ora, se l’utente connesso al suo account Facebook allora abbiamo bisogno di sapere se l’utente è connesso nella nostra applicazione o no, perché l’accesso a Facebook e la registrazione nella nostra applicazione facebook sono due cose totalmente diverse. Lo facciamo cercando di recuperare il profilo dell’utente.
Per recuperare il profilo è necessario chiamare la funzione di Facebook ‘api’. Per questo è necessario passare il parametro ‘/ me’. Questo ti darebbe le informazioni di base sull’utente. Si potrebbe chiamare qualsiasi cosa utilizzando la funzione API , ad esempio per ottenere le foto che si potrebbe passare il parametro ‘‘/me/photos’, ‘/me/friends’ per la lista dei nostri amici . Se si desidera richiedere molte cose in una sola volta chiamando la funzione ‘api’ ancora e ancora potrebbe rallentare l’applicazione in modo invece si potrebbe optare per l’elaborazione in batch con JSON, magari aggiungeremo qualcosa in una delle prossime guide che realizzeremo
- if($user){
- try{
- $user_profile = $facebook->api(‘/me’);
Facendo un print_r () sulla variabile $ user_profile si dovrebbe vedere , nel caso che sia andato tutto bene una matrice contenente tutti i dati dell’utente. Si potrebbe facilmente usare qualsiasi di queste informazioni nella vostra applicazione.
La memorizzazione dei dati da Facebook
Ora, come abbiamo collegato gli utenti facebook con la nostra applicazione, abbiamo bisogno di verificare se l’e-mail degli utenti id è già presente nel nostro database o meno. Se è presente, allora si avrebbe avviato le variabili di sessione direttamente e in caso contrario, ci sarebbe prima di tutto inserire i dettagli dell’utente, come il nome, id-mail, sesso nel nostro database e quindi inizializzare le variabili di sessione.
Se già conoscete un po’ di PHP e Mysql sicuramente quello che vi andiamo a scrivere adesso non vi produrrà eccessivi fastidi diciamo.
- $con=mysql_connect(“Your Host Name”,”Your User Name”,”Your Password”);
- if(!$con)
- {
- die(“Could not connect to MySQL”);
- }
- mysql_select_db(“Your Database Name”,$con) or die (“could not open database”);
- $name = “‘” . $user_profile[‘name’] . “‘”;
- $email = “‘” . $user_profile[’email’] . “‘”;
- $gender = “‘” . $user_profile[‘gender’] . “‘”;
- $bio = GetSQLValueString($user_profile[‘bio’], “text”);
- $query = sprintf(“SELECT * FROM new WHERE email = %s”,$email);
- $res = mysql_query($query) or die(‘Query failed: ‘ . mysql_error() . “<br>\n$sql”);
- if(mysql_num_rows($res) == 0)
- {
- $iquery = sprintf(“INSERT INTO newmember values(”,%s,%s,%s,%s,’yes’)”,$name,$email,$gender,$bio);
- $ires = mysql_query($iquery) or die(‘Query failed: ‘ . mysql_error() . “<br>\n$sql”);
- $_SESSION[‘user’] = $user_profile[’email’];
- }
- else
- {
- $row = mysql_fetch_array($res);
- $_SESSION[‘user’] = $row[’email’];
- }
La creazione del file indice
Ora abbiamo bisogno di creare ‘index.php’ la nostra pagina principale Questa è la pagina in cui il pulsante “Connect with Facebook” deve apparire. Questa è anche la pagina in cui i dettagli dell’utente che ha appena effettuato l’accesso con il Facebook appaiono. In primo luogo abbiamo bisogno di includere il ‘fbconnect.php’ e il file ‘common.php’. Ovviamente se la sessione è iniziata, i dati anagrafici dell’utente verranno visulizzati
session_start ();
sono “common.php” ;
include_once “fbconnect.php” ;
se (isset ( $ _SESSION [ ‘user’ ]))
echo ‘href=”logout.php”> <a Esci </ a>’ ;
altro
echo ‘<a href=”$loginUrl”> Accedi </ a>’ ;
se (! isset ( $ _SESSION [ ‘user’ ]))
{
echo ‘<a href=”$loginUrl”> <img src=”images/f-connect.png” alt=”Connect al Account”> Facebook </ a>’
}
altro
{
$ Email = “‘” . $ _SESSION [‘user ‘]. “‘ “;
$ Query = sprintf ( “SELECT * FROM NuovoMembro WHERE email =% s” , $ email );
$ Res = mysql_query ( $ query ) o morire ( ‘query non riuscita:’ .. mysql_error () “<br> \ n $ sql” );
$ Riga = mysql_fetch_array ( $ res );
echo $ riga [ ‘name’ ];
echo “<b> GENERE: </ b>” . $ riga [ ‘genere’ ];
echo “EMAIL <b>: </ b>” . $ riga [ ’email’ ];
}
Ci rendiamo conto che abbiamo introdotto anche un po’ di PHP, ma insomma nulla di particolarmente trascendentale che non possiate trovare in qualche breve guida di facebook
Il Logout
Ora, abbiamo bisogno di creare il file logout.php. La disconnessione URL che facebook crea ha un piccolo problema. Quando si utilizza l’URL per effettuare il logout, non si ottiene solo la disconnessione, ma anche quella da facebook, che è qualcosa che non vogliamo che accada. Vediamo quindi come ovviare a questo problema. E’ necessario sostituire il {Your App ID}’ with your own app ID per queste 3 variabili di sessione.
- · unset($_SESSION[‘user’]);
- · unset($_SESSION[‘fb_{Your App ID}_code’]);
- · unset($_SESSION[‘fb_{Your App ID}_access_token’]);
- · unset($_SESSION[‘fb_{Your App ID}_user_id’]);
- · header(“Location:index.php”);
- · exit;
CAMBIAMENTI FINALE
Creare il database e la tabella – “newmember” con i campi obbligatori
Common.php aperto e mettere il vostro nome host, nome utente, password e nome del database
Fbconnect.php aperto e mettere il vostro ID App, App Secert, URL del sito
Logout.php aperto e sostituire {} Your_App_ID con il tuo ID App
Questo dovrebbe essere! Effettuare tutte le modifiche di cui sopra potrebbe facilmente ottenere il vostro Facebook Connect lavoro. Se ci sono dei dubbi fatemi sapere nella sezione commenti. Vorrei cercare di risolvere tutti i vostri problemi!