FB API: Cum implementam logarea prin facebook
Sa tot stai sa creezi conturi pe diferite site-uri este enervant, de aceea si multi renunta la a mai vizita un site din cauza lenei de a-si face un cont asa ca pe langa logarea simpla este recomandat sa aveti si logare prin Facebook/Google/Yahoo.
In cele ce vor urma vom planifica implementarea acestui [sa-i spunem] algoritm.
Partea ta - Baza de date
Aici trebuie sa-ti pui osul la munca! Eu doar iti voi prezenta conceptul, tu va trebui sa-i planifici implementarea.
Intelege ca aceasta trebuie sa fie o facilitate pe langa inregistrarea si logarea normala, trebuie sa ai si intregistrarea simpla.
In primul rand, in mod normal, avem un tabel unde pastram utilizatorii si datele lor. Tu trebuie sa mai creezi o coloana de tip INT in acel tabel in care vei salva id-ul contului de facebook al utilizatorului, daca este cazul. In caz ca nu are nici un id inseamna ca nu s-a inregistrat prin facebook deci nici nu se va putea loga prin facebook.
In caz ca ai o comunitate, nu lasa sa se inregistreze utilizatorii de pe facebook cu un nume deja ocupat, afiseaza-le o alerta ca acel nume este deja ocupat.
Nu este nevoie sa incluzi clasa facebook in toate paginile, ai nevoie de ea doar la inregistrare si la logare.
Cand loghezi un utilizator prin facebook verifici daca exista un utilizator cu id-ul de facebook la fel cu al celui ce s-a logat prin facebook, daca nu exista il inregistrezi si reincerci logarea.
Intelege ca aceasta trebuie sa fie o facilitate pe langa inregistrarea si logarea normala, trebuie sa ai si intregistrarea simpla.
In primul rand, in mod normal, avem un tabel unde pastram utilizatorii si datele lor. Tu trebuie sa mai creezi o coloana de tip INT in acel tabel in care vei salva id-ul contului de facebook al utilizatorului, daca este cazul. In caz ca nu are nici un id inseamna ca nu s-a inregistrat prin facebook deci nici nu se va putea loga prin facebook.
In caz ca ai o comunitate, nu lasa sa se inregistreze utilizatorii de pe facebook cu un nume deja ocupat, afiseaza-le o alerta ca acel nume este deja ocupat.
Nu este nevoie sa incluzi clasa facebook in toate paginile, ai nevoie de ea doar la inregistrare si la logare.
Cand loghezi un utilizator prin facebook verifici daca exista un utilizator cu id-ul de facebook la fel cu al celui ce s-a logat prin facebook, daca nu exista il inregistrezi si reincerci logarea.
Partea complicata - Facebook
Odata ce deja avem tot conceptul de la Partea ta - Baza de date trebuie sa vedem cum facem rost de datele vizitatorului de pe facebook.
Lucrul cu API-ul Facebook functioneaza simplu:
Facebook PHP SDK il downloadati de aici(unde este clasa Facebook) https://github.com/facebook/facebook-php-sdk
Pentru a crea o aplicatie intra pe https://developers.facebook.com/apps.
Apasa pe Creeaza o aplicatie noua
Completeaza campurile cu datele dorite de tine si apasa Continua
Completeaza corect codul captcha
Acum asteapta(dureaza cateva secunde).
Adauga id-ul aplicatiei si key-ul secret al aplicatiei intr-un fisier ca sa-l ai cat mai aproape(daca le pierzi le poti revedea oricand)
Acum:
Apasa pe Avansat
In campul cu "Valid OAuth redirect URIs" vei completa cu adresa unde vrei sa-l redirectioneze pe utilizator dupa ce se logheaza. In exemplul nostru va fi pagina cu fisierul pentru exemplu.
Urmatoarele functii le vom folosii(unde vedeti Facebook-> inseamna ca ele apartin clasei facebook):
Iar acum un exemplu in care doar logam un utilizator pe facebook prin aplicatia noastra si ii afisam numele si inca cateva date. Acest exemplu doar arata modul de lucru basic cu API-ul Facebook, tu faci restul! Nu fii leneș! Fă-l!.
Daca vei da refresh la pagina unde ai adaugat codul de mai sus vei observa ca inca esti logat deoarece token-ul inca se pastreaza in sesiune($_SESSION).
Nu uita, daca ai orice intrebare despre acest articol abuzeaza de comentarii!
Lucrul cu API-ul Facebook functioneaza simplu:
- Ne cream o aplicatie
- Setam aplicatia -> url-ul pentru redirect de exemplu
- Stabilim datele din PHP: url-ul pentru redirect, datele aplicatiei, permisiunile necesare
- Includem clasa facebook
- Afisam link-ul de logare sau in caz contrar afisam datele de pe facebook
Facebook PHP SDK il downloadati de aici(unde este clasa Facebook) https://github.com/facebook/facebook-php-sdk
Pentru a crea o aplicatie intra pe https://developers.facebook.com/apps.
Apasa pe Creeaza o aplicatie noua
Completeaza campurile cu datele dorite de tine si apasa Continua
Completeaza corect codul captcha
Acum asteapta(dureaza cateva secunde).
Adauga id-ul aplicatiei si key-ul secret al aplicatiei intr-un fisier ca sa-l ai cat mai aproape(daca le pierzi le poti revedea oricand)
Acum:
- Apasa pe "Website cu Logare prin Facebook"
- Completeaza inputul pentru "Site URL"
- Apasa pe "Salveaza modificarile"
Apasa pe Avansat
In campul cu "Valid OAuth redirect URIs" vei completa cu adresa unde vrei sa-l redirectioneze pe utilizator dupa ce se logheaza. In exemplul nostru va fi pagina cu fisierul pentru exemplu.
Urmatoarele functii le vom folosii(unde vedeti Facebook-> inseamna ca ele apartin clasei facebook):
- object Facebook->__construct(array $optiuni)
Cand initializam o instanta a clasei Facebook. Argumente:
- $optiuni - Array cu key-urile urmatoare:
- appId - id-ul aplicatiei
- secret - key-ul secret al aplicatiei
- $optiuni - Array cu key-urile urmatoare:
- Facebook->api(...)
- int Facebook->getUser()
- string getLoginUrl( array $optiuni )
- $optiuni - Array cu key-urile urmatoare:
- scope - permisiunile de care avem nevoie
- redirect_uri - URL-ul unde va fi redirectionat vizitatorul dupa ce se logheaza
- display - page(default si recomandat cu PHP) sau popup(default si recomandat cu javascript)
Aceasta metoda este mai complexa, cu aceasta metoda faceti o cerere Graph API.
Returneaza id-ului userului curent(logat pe facebook prin intermediul aplicatiei tale) sau in caz ca nu este logat returneaza 0.
Aceasta functie ne returneaza link-ul pentru loginul vizitatorului pe facebook. Tot cu aceasta functie stabilim permisiunile pe care sa i le cerem si URL-ul unde va face redirect(default este pagina actuala). Parametrii:
Iar acum un exemplu in care doar logam un utilizator pe facebook prin aplicatia noastra si ii afisam numele si inca cateva date. Acest exemplu doar arata modul de lucru basic cu API-ul Facebook, tu faci restul! Nu fii leneș! Fă-l!.
<?php include 'src/facebook.php'; # Inceput - Editeaza aici # $app_id = '286016548208146'; $app_secret = 'c8226237e25b68a1673155e57e4b9bd1'; # Sfarsit - Editeaza aici # $fb = new Facebook(array( 'appId' => $app_id, 'secret' => $app_secret )); $user_id = $fb->getUser(); if($user_id){ $profil = $fb->api('/me'); echo '<pre>'.print_r($profil, true).'</pre>'; // afisam arrayul $profil } else{ // In caz ca nu e logat returneaza 0 echivalent cu false echo '<a href="'.$fb->getLoginUrl().'">Login</a>'; } ?>Am incercat sa pastrez codul cat mai scurt posibil, dupa cum vedeti cu doar cateva linii de cod am reusit sa facem rost de datele userului.
Daca vei da refresh la pagina unde ai adaugat codul de mai sus vei observa ca inca esti logat deoarece token-ul inca se pastreaza in sesiune($_SESSION).
Nu uita, daca ai orice intrebare despre acest articol abuzeaza de comentarii!
Tags: Tutoriale, Programare Web, Php
Comments
Nota
5
din
1