Facebook PHP SDK: rejestracja i logowanie

facebooksdk

Temat następnego artykułu nasunął się sam. Właśnie uporałem się z tym zagadnieniem, realizując na własne potrzeby logowanie i rejestrację z wykorzystaniem konta Facebook. Temat z pozoru wydaje się nieco skomplikowany, jednak po zrozumieniu pewnych mechanizmów okazuje się, że nie jest to takie trudne. Możliwości Facebook SDK są naprawdę spore, my zaczniemy jednak od prostych zastosowań.

 

Założenia

  • Facebook PHP SDK w wersji 4.0 (https://developers.facebook.com/docs/reference/php/4.0.0?locale=pl_PL)
  • PHP 5.4 lub nowsze – wymagane przez SDK Facebooka
  • konta użytkowników trzymamy w bazie danych; tabela z użytkownikami prócz pól loginu i hasła powinna zawierać także pola: adres e-mail oraz facebook_id, jak na poniższym przykładzie:
    user_id | username | password | email | facebook_id | inne_pola…

 

Logowanie i rejestracja za pomocą Facebook w teorii

W zasadzie zarówno logowanie jak i rejestracja sprowadzają się w większości do tego samego: pobrania danych użytkownika z portalu Facebook. Dalsze czynności zależą już tylko od tego, do czego mają nam służyć zdobyte informacje.

W przypadku rejestracji będziemy chcieli sprawdzić w pierwszej kolejności, czy bieżące konto Facebook zostało już użyte do założenia konta na naszej stronie. Zbadamy to sprawdzając, czy w naszej bazie danych w polach email oraz facebook_id istnieją już dane, które uzyskaliśmy. Jeśli nic nie zostało znalezione, wówczas możemy zarejestrować naszego użytkownika. Dodajemy nowy rekord do bazy danych, zawierający pobrane z Facebooka informacje (email, facebook_id, name). O tym, co można pobrać za pomocą Facebook API napiszę w dalszej części wpisu.
Logowanie polega na weryfikacji, czy dane bieżącego konta Facebook znajdują się już w bazie danych. Jeśli tak, to możemy zalogować użytkownika.

 

Rejestracja:

  1. Pobranie danych konta Facebook
  2. Sprawdzenie, czy użytkownik o takich danych jeszcze nie istnieje
  3. Jeśli nie – rejestrujemy go

Logowanie:

  1. Pobranie danych konta Facebook
  2. Sprawdzenie, czy użytkownik o takich danych już istnieje
  3. Jeśli tak – logujemy go

Pobranie danych za pomocą Facebook API:

  1. Użytkownik klika w link logowania, wygenerowany przez SDK.
  2. Pojawia się okno logowania w portalu Facebook. Jeśli użytkownik jest już zalogowany, ten punkt jest pomijany.
  3. Pojawia się okno uruchomienia aplikacji dla danego konta użytkownika, gdzie są wyszczególnione wszystkie uprawnienia, których wymaga nasza aplikacja. Jeśli użytkownik już zaakceptował wymagania aplikacji, ten punkt jest pomijany.
  4. Użytkownik jest przekierowywany z powrotem na wskazany adres.

 

Utworzenie aplikacji na Facebooku

  1. Wchodzimy na stronę https://developers.facebook.com/apps/ i wciskamy przycisk „Add a New App”.
  2. Wybieramy platformę, w tym przypadku będzie to strona internetowa.
  3. Wpisujemy nazwę, jaką chcemy nadać aplikacji. Wyskoczy okienko szczegółów aplikacji. Wybieramy kategorię z listy, a następnie klikamy „Create App ID”.
  4. Poniżej pojawi się kod do wstawienia na stronę – pomijamy go, gdyż dotyczy JavaScript SDK. Przewijamy niżej i wypełniamy dwa pola adresem strony internetowej, gdzie chcemy wdrożyć rejestrację i logowanie. Naciskamy „Dalej”.
  5. Wracamy do listy aplikacji. W górnym menu naciskamy „My Apps”. Wybieramy naszą aplikację.
  6. W zakładce „Settings” wpisujemy adres email w polu „Contact Email” i zapisujemy.
  7. W zakładce „Status & Review” ustawiamy przełącznik „Do you want to make this app and all its live features available to the general public?” w pozycji „Yes”.
  8. Nasza aplikacja jest gotowa.

 

Podłączenie SDK do strony internetowej

  1. Pobieramy Facebook PHP SDK ze strony: https://developers.facebook.com/docs/php/gettingstarted/4.0.0?locale=pl_PL.
  2. Ze ściągniętej paczki będziemy potrzebować:
    • plik autoload.php
    • folder src
  3. Niezbędne pliki dołączamy do plików naszej strony WWW. Należy pamiętać o zależności między plikiem autoload.php a folderem src. Jeśli zmienimy nazwę folderu lub jego położenie, trzeba będzie zmienić ścieżkę w pliku autoload.php.

 

Uniwersalny kod na pobranie danych użytkownika

 

Zwracane dane

W przykładzie zostały zwrócone standardowe dane oraz adres email (wymagane uprawnienie do uzyskania).

 

Podsumowanie

Przy pomocy SDK Facebooka można zdziałać naprawdę sporo. Możliwe jest pobranie praktycznie prawie wszystkich danych o użytkowniku, publikacja w jego imieniu czy nawet zarządzanie stronami. Po więcej informacji odsyłam do dokumentacji Facebooka pod adresem https://developers.facebook.com/.