facebook API

Facebook jest największym serwisem społecznościowym na świecie. Posiada on ogromną ilość aplikacji i gier, które swój żywot zawdzięczają facebook API. We wpisie tym, dokładnie krok po kroku pokażę, jak napisać prostą aplikację z jego użyciem.

1. Rejestracja

Choć wydaje się to banalne, to jest to warunek konieczny. Zatem jeśli mamy już własne konto w serwisie, pomijamy ten krok. Jeśli jest inaczej, zapraszam do formularza rejestracji, który znajdziecie TUTAJ.

2. Dodanie aplikacji

Teraz musimy zgłosić nową aplikację. Po zalogowaniu się, przechodzimy na stronę deweloperów. Jeśli jesteśmy tu pierwszy raz, to konieczne staje się udzielenie jej odpowiednich uprawnień.

Krok pierwszy – nadanie uprawnień

Teraz należy kliknąć przycisk „Set Up New App”.

Krok 2 – dodawanie nowej aplikacji

W pewnych okolicznościach możemy spodziewać się poniższego monitu. Jeśli nasze konto zostanie zweryfikowane, proces będzie kontynuowany. Aby tego dokonać możemy wybrać jedną z dwóch opcji: podpięcie karty płatniczej lub podanie numeru telefonu.

Krok 3 – monit weryfikacji konta

Pozostaje nam tylko określenie nazwy aplikacji, jej języka i akceptacja regulaminu. Jeśli wszystko przebiegnie bez dodatkowych problemów, to po kliknięciu kontynuuj, zakończymy pomyślnie proces zgłaszania i rejestracji aplikacji na facebooku.

Krok 4 – podstawowe informacje o aplikacji

Naszym oczom ukaże się panel zarządzania, identyczny jak na załączonym poniżej obrazku.

Krok 5 – panel zarządzania

Po lewej stronie umieszczone zostało menu, składające się z czterech pozycji:
About – Basic Info oferuje:

  • App ID – ID naszej aplikacji
  • App Secret – klucz który będziemy używać w trakcie korzystania z API, nie należy go ujawniać osobom postronnym
  • App Name – nazwa aplikacji
  • Description – opis aplikacji
  • Locale – lokalizacja
  • Icon – ikona
  • Logo – logo
  • Contact Email – email kontaktowy, wykorzystywany przez facebooka do komunikacji z autorem
  • Privacy Policy URL – adres pod którym umieszczona została polityka prywatności, pole wymagane
  • Terms of Service URL – adres pod którym znajdują się warunki usługi
  • User Support Email – email kontaktowy dla użytkowników aplikacji
  • User Support URL – adres zawierający wsparcie dla użytkowników

About – Roles pozwala między innymi na określenie administratorów, deweloperów i testerów. Oczywiście jesteśmy w stanie wybrać ich wyłącznie z grupy naszych znajomych. W About – Advanced warto zwrócić uwagę na Sandbox Mode. Aktywowanie ów funkcji, pozwala na używanie napisanego kodu wyłącznie przez deweloperów. Z punktu widzenia bezpieczeństwa, może nas zainteresować pozycja Server Whitelist. Umożliwia ona ustalenie adresów IP, z których będą pochodzić żądania naszej aplikacji.

I teraz przechodzimy do bardzo istotnej rzeczy. Należy sobie zdać sprawę, iż aplikacje na facebooku możemy umieścić na własnej witrynie (opcja menu Web) lub „bezpośrednio” na facebooku (opcja menu On facebook), z wykorzystaniem iframe. Jeśli zdecydujemy się na pierwszą możliwość, to w ustawieniach zobowiązani jesteśmy do określenia dwóch parametrów: Site URL (to adres naszej aplikacji) i Site Domain (domena naszej aplikacji). Iframe to rozwiązanie alternatywne. Wszelkie opcje z nim związane umieszczono w On facebook – canvas settings:

  • Canvas Page – to wybrany przez nas adres aplikacji na facebooku
  • Canvas URL – adres pod którym umieściliśmy nasz kod (źródło dla iframe)
  • Secure Canvas URL – wersja adresu po HTTPS
  • IFrame Size – rozmiar do wyboru: automatyczny lub z paskiem przewijania
  • Canvas Width – albo stała szerokość iframe, albo maksymalna dostępna w oparciu o rozdzielczość ekranu użytkownika
  • Bookmark URL – adres dla zakładki korzystających z aplikacji (po lewej stronie w profilu użytkownika) – domyślnie ten sam co Canvas Page
  • Social Discovery – włączona informuje znajomych korzystającego z aplikacji, że jej używa poprzez umieszczenie stosownej informacji na wallu.
  • Tab Name – w przypadku dodania aplikacji na fanpage’u, jest to nazwa zakładki jaka się wyświetli po lewej stronie w profilu ów strony – PRZYKŁAD
  • Tab URL – kliknięcie Tab name otwiera podany tutaj adres
  • Secure Tab URL – kliknięcie Tab name otwiera podany tutaj adres po HTTPS
  • Edit URL – adres do edycji ustawień aplikacji dla jej administratorów

Zakładka Facebook Mobile przeznaczona jest dla programistów oprogramowania na iOS i Android.

3. Piszemy prostą aplikację

Dla programistów PHP został udostępniony pakiet SDK, dzięki którego bardzo szybko i prosto jesteśmy w stanie napisać kod wykorzystujący potencjał, jaki oferuje facebook API. Możemy go znaleźć i pobrać STĄD. Oprócz niezbędnych klas, dostarcza on trywialną ilustrację jego użycia. Najwyższy czas zacząć kodować. Spójrzmy na poniższy skrypt.

// zalaczamy plik
require 'src/facebook.php';

// tworzymy instancje klasy Facebook
// podajac id appki i secret key
$facebook = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxx',
));

// zwraca UID lub 0 w przypadku niepowodzenia
$appUser = $facebook->getUser();
var_dump($appUser);

if ($appUser) {
  try {
    // pobieramy dane o uzytkowniku appki
    $userInfo = $facebook->api('/me');
    var_dump($userInfo);
    // wyswietlamy opcje wylogowania z aplikacji
    echo 'WYLOGUJ';
  } catch (FacebookApiException $e) {
    $appUser = null;
  }
}
if (!$appUser) {
    // jeśli nie to zachecamy do zalogowania
    echo 'ZALOGUJ';
}

Wydaje się, że powyższy kod nie wymaga dodatkowych wyjaśnień. Zwróćmy jednak uwagę na najważniejsze metody klasy Facebook:

  • getLoginUrl($params) – zwraca adres umożliwiający użytkownikom logowanie się poprzez facebooka
  • getLogoutUrl($params) – zwraca adres umożliwiający użytkownikom wylogowanie się poprzez facebooka
  • api() – jedna z najważniejszych funkcji, pozwala korzystać z API facebooka

Oczywiście proces logowania nie jest zawsze konieczny. Informacje dostępne publicznie możemy śmiało pobierać poprzez API.

4. Zwiększanie uprawnień aplikacji

Introspekcja zmiennej $userInfo pokazuje, iż posiadamy dostęp tylko do podstawowych informacji na temat danego użytkownika. Całe szczęście jesteśmy w stanie poprosić o dostęp do dodatkowych operacji i danych:

// zalaczamy plik
require 'src/facebook.php';

// tworzymy instancje klasy Facebook
// podajac id appki i secret key
$facebook = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxx'
));

// zwraca UID lub 0 w przypadku niepowodzenia
$appUser = $facebook->getUser();

if ($appUser) {
  try {
    // pobieramy dane o uzytkowniku appki
    $userInfo = $facebook->api('/me');
    var_dump($userInfo);
    // wyswietlamy opcje wylogowania z aplikacji
    echo 'WYLOGUJ';
  } catch (FacebookApiException $e) {
    $appUser = null;
  }
}
if (!$appUser) {
    // jeśli nie to zachecamy do zalogowania
    // chcemy miec dostep do emaila i mozliwosci
    // publikacji na wallu usera
    echo 'ZALOGUJ';
}

Więcej informacji na temat permissions znajdziecie TUTAJ.

Na koniec przykład z umieszczaniem wpisu na wallu użytkownika:

// zalaczamy plik
require 'src/facebook.php';

// tworzymy instancje klasy Facebook
// podajac id appki i secret key
$facebook = new Facebook(array(
  'appId'  => 'xxxx',
  'secret' => 'xxxx'
));

// zwraca UID lub 0 w przypadku niepowodzenia
$appUser = $facebook->getUser();

if ($appUser) {
  try {
    // umieszczamy na wallu wiadomosc test
    $facebook->api('/me/feed','post',array('message'=>'test'));
    // wyswietlamy opcje wylogowania z aplikacji
    echo 'WYLOGUJ';
  } catch (FacebookApiException $e) {
    $appUser = null;
  }
}
if (!$appUser) {
    // jeśli nie to zachecamy do zalogowania
    // chcemy miec dostep do emaila i mozliwosci
    // publikacji na wallu usera
    echo 'ZALOGUJ';
}

Aby dobrze zapoznać się z API facebooka, zachęcam do przeglądnięcia dokumentacji udostępnionej pod tym adresem: DOKUMENTACJA. Oczywiście jest to tylko wstęp do zagadnienia. Obiecuję więc powrót do tego tematu w najbliższym czasie.

3 Odpowiedzi : “facebook API”

  1. Bardzo zwięźle i przejrzyście. Dobry post!

  2. Piotr Wochna napisał:

    Czy ja wiem czy dobry. To samo można przeczytać w przykładach na FB. Już bardziej przydatne dla zwykłego usera byłyby informacje o tym jak działają ogólnie aplikacje na FB (np. co to jest signed_request,access_token, graph api, dlaczego warto znać FQL itd). Bo wystarczy przejrzeć forum developerskie FB i od razu widać, że wielu developerów potrafi napisać proste aplikacje ale nie mają wiedzy o systemie i zaczynają się ostre schody. A w API FB drzemią ogromne możliwości (np. batch requests czy real-time updates).

  3. RalF napisał:

    Challenge accepted :) Kolejny wpis znacznie dogłębniej opisze możliwości ów API. Pozdrawiam!

Pozostaw Odpowiedź