Folosește cu siguranță SDK-ul. Avantajul este că aceasta este o bibliotecă care a fost testată și folosită în sălbăticie. Nu realinia niciodată o roată când nu ai nevoie (vei descoperi că vei face mai mult ;)).

Ceea ce am ajuns să fac în CI a fost să adaug SDK-ul PHP PHP în directorul meu biblioteci și să schimb funcția __construct a clasei Facebook:

Funcția publică __construct() ( $ci =& get_instance(); $this->setAppId($ci->config->item("fb_appId")); $this->setApiSecret($ci->config->item( "fb_secret")); $this->setCookieSupport($ci->config->item("fb_cookie")); setFileUploadSupport($ci->config->item("fb_upload"));

Odată făcut acest lucru, am putut accesa FB API de oriunde în aplicația mea prin $this->facebook .

Acestea fiind spuse toate acestea, totul a fost înainte de 2.0, așa că nu sunt complet sigur de ce modificări vor fi necesare dacă este necesar (folosesc Yii acum și de aceea nu știu dacă sunt necesare modificări :.))

Sper că acest lucru ajută.

Clasa UserModel extinde Model ( privat $m_user; funcția publică UserModel() (parent::Model(); $this->m_user = null; $session = $this->facebook->getSession(); if($session) ( if($this->facebook->api("/me") != null) ( $this->m_user = $this->facebook->api("/me"); ) ) ) funcția publică getUser() ( return $this->m_user; ) funcția publică isLoggedIn() ( return $this->getUser() != null; ) // returnează fie adresa URL de conectare, fie de deconectare pentru furnizorul dat, în raport cu starea // în care obiectul utilizatorului curent este în funcția publică getActionUrl() ( if($this->isLoggedIn()) ( return $this->facebook->getLogouturl(); ) else ( return $this->facebook->getLoginUrl(array(" next"=>currentUrl(), "cancel"=>currentUrl(), "req_perms" => null, "display" =>"popup")); ) ) )

Deconectare

A doua editie:

Îmi pare rău, a trecut ceva timp de când am scris asta, așa că a trebuit să mă întorc și să-mi dau seama cum este implementat:P După un grep rapid, am descoperit că nu folosesc deloc getActionUrl. Am adăugat un script client pentru a asculta evenimentele de conectare/deconectare în FB:

Google.setOnLoadCallback(on_load); google.load("jquery", "1.4.4"); window.fbAsyncInit = function() ( FB.init((appId: "", stare: adevărat, cookie: adevărat, xfbml: adevărat)); FB.Event.subscribe("auth.login", on_fb_login); FB.Event .subscribe("auth.logout", on_fb_logout); function on_load() ( // forțează toate ancorele cu eticheta rel „ext” să se deschidă într-o fereastră externă // (înlocuiește funcționalitatea target=) $(„a”).click(function())( window.open(this . href); return false; funcția on_fb_login();

În prezent, utilizatorii web nu sunt interesați să completeze un formular mare de înregistrare pe site. Procesul scurt de înregistrare vă ajută să obțineți mai mulți abonați pe site-ul dvs. Conectarea cu Facebook este o modalitate rapidă și puternică de a integra sistemul de înregistrare și autentificare pe site. Facebook este cea mai populară rețea socială și majoritatea utilizatorilor au un cont Facebook. Facebook Login permite utilizatorilor să se conecteze la site-ul dvs. folosind datele de conectare ale contului lor de Facebook fără a se înscrie pe site-ul dvs.

PHP SDK permite accesarea API-ului Facebook din aplicația web. Puteți implementa cu ușurință contul de Conectare cu Facebook folosind SDK-ul Facebook pentru PHP. În acest tutorial vă va arăta cum puteți implementa sistemul de autentificare și înregistrare a utilizatorilor cu Facebook folosind PHP și să stocați datele profilului utilizatorului în baza de date MySQL. Exemplul nostru de script Facebook Login folosește Facebook PHP SDK v5 cu Facebook Graph API pentru a construi sistemul Facebook Login cu PHP și MySQL.

Pentru a începe cu cea mai recentă versiune de Facebook SDK v5.x , asigurați-vă că sistemul dvs. îndeplinește următoarele cerințe.

  • Navigați la pagina Setări » De bază.
  • Navigați la pagina de conectare Facebook » Setări.
    • În câmpul Valid OAuth Redirect URIs, intra in URL de redirecționare.
    • Faceți clic pe Salvare modificări.
  • Accesați pagina Setări » De bază, notați ID-ul aplicației și Secretul aplicației. Acest ID de aplicație și secretul aplicației vă permit să accesați API-urile Facebook.

    Rețineți că: ID-ul aplicației și secretul aplicației trebuie specificate în script în momentul apelului API Facebook. De asemenea, URI-urile de redirecționare OAuth valide trebuie să fie asociate cu adresa URL de redirecționare specificată în script.

    Obțineți linkul profilului și sexul

    Pentru a prelua linkul de cronologie Facebook și genul utilizatorului, trebuie să trimiteți o solicitare pentru permisiunile user_link și user_gender.


    Odată ce procesul de revizuire este finalizat și aprobat de Facebook, veți putea obține linkul profilului utilizatorului și sexul din API-ul Facebook Graph.

    Doriți un ghid detaliat despre crearea aplicației Facebook? Parcurgeți acest ghid pentru.

    Creați tabelul bazei de date

    Pentru a stoca informațiile de profil ale utilizatorului de pe Facebook, trebuie creat un tabel în baza de date. Următorul SQL creează un tabel de utilizatori cu câteva câmpuri de bază în baza de date MySQL pentru a păstra informațiile contului Facebook.

    CREATE TABLE `users` (`id` int (11 ) NOT NULL AUTO_INCREMENT, `oauth_provider` enum("" ,"facebook" ,"google" ,"twitter" ) COLLATE utf8_unicode_ci NOT NULL , `oauth_uid` varchar (50 ) COLLATE utf8_unicode_ci NOT NULL , `first_name` varchar (25 ) COLLATE utf8_unicode_ci NOT NULL , `last_name` varchar (25 ) COLLATE utf8_unicode_ci NOT NULL , `email` varchar (25 ) COLLATE utf8_unicode `varchar ,_unicode 8 COLLATE ` _unicode_ci DEFAULT NULL , `picture` varchar (200 ) COLLATE utf8_unicode_ci NOT NULL , `link` varchar (100 ) COLLATE utf8_unicode_ci NOT NULL , `created` datetime NOT NULL , `modified` datetime NOT NULL , PRIMARY KEY (`GINE` =)) InnoDB DEFAULT CHARSET =utf8 COLLATE =utf8_unicode_ci; Facebook SDK pentru PHP

    Directorul facebook-php-graph-sdk/ conține cea mai recentă versiune (v5) a SDK-ului Facebook pentru PHP. Nu trebuie să îl descărcați separat, toate fișierele necesare ale Facebook PHP SDK v5 sunt incluse în codul nostru sursă Facebook Login PHP.

    Clasa de utilizator (User.class.php)

    Clasa User gestionează operațiunile legate de baza de date (conectare, inserare și actualizare) folosind PHP și MySQL. Vă ajută să vă conectați la baza de date și să inserați/actualizați datele contului Facebook în tabelul utilizatorilor.

    • __construct() – Conectați-vă la baza de date MySQL.
    • checkUser() – Inserați sau actualizați datele profilului utilizatorului pe baza furnizorului OAuth și a ID-ului. Returnează datele contului utilizatorului sub formă de matrice.