Tworzenie aplikacji na Facebooku

Wydawać by się mogło, że do tworzenia aplikacji i zakładek na Facebooku potrzeba znakomitej znajomości języków programowania. Nic bardziej mylnego. Tworząc swoją pierwszą aplikację, zobacz, że nie ma się czego bać.


Wielu programistów i webdeveloperów, których miałem przyjemność poznać, wzdryga się na samą myśl o tworzeniu aplikacji na najpopularniejszy serwis społeczności owy, jakim jest Facebook. Myśl wywodzi się z błędnego przekonania o stopniu skomplikowania takiego procesu i czasu, jaki na to trzeba przeznaczyć. Tym bardziej że do stworzenia prostej aplikacji nie potrzeba nawet specjalnie wiedzy programistycznej. W Sieci można znaleźć ogromne pokłady poradników, które przeprowadzą, krok po kroku, przez proces tworzenia i implementacji takiego skryptu.

Tworzymy pierwszą aplikację

Niezależnie od zadań, jakie ma spełniać aplikacja, pierwsza część jej tworzenia wygląda zawsze tak samo. Zaczynamy oczywiście od posiadania aktywnego konta w serwisie. Po spełnieniu tego fundamentalnego wymogu przechodzimy do strefy dla developerów i klikamy przycisk "utwórz aplikację". Tutaj podajemy jej podstawowe informacje i akceptujemy regulamin.

Po podaniu nazwy i akceptacji zostajemy przekierowani na stronę, gdzie mamy możliwość sprecyzowania podstawowych parametrów. Większość pól formularza nie wymaga szczegółowego omówienia i jest raczej oczywista.

- App Display Name - Tutaj podajemy nazwę naszej aplikacji (pod jaką użytkownik będzie ją widział)

- App Namespace - W przypadku strony "zagnieżdżonej" w serwisie jest to skrócona nazwa obecna w adresie. Np.: apps.facebook.com/MOJA_SKROCONA_NAZWA

Opcji jest oczywiście więcej w widoku ustawień zaawansowanych, ale te powinny wystarczyć do szybkiego uruchomienia naszej aplikacji i na nich na razie poprzestaniemy.

Tutaj uzyskujemy dwa najważniejsze ciągi znaków, które będą się przewijały dalej w procesie tworzenia i implementacji. Mowa o "App ID" oraz "App Secret".

Application ID jest ciągiem cyfr identyfikującym naszą aplikację przy dostępie do API. Ciąg ten jest publiczny i będzie widoczny dla wszystkich użytkowników serwisu, którzy będą chcieli skorzystać z naszego dzieła.

Drugim parametrem jest Application Secret. Wykorzystywany jest on w procesie autoryzacji z API serwisu i powinniśmy go zachować wyłącznie dla siebie i nie zamieszczać w żadnych plikach tekstowych (np. JavaScript, HTML). Klucz ten, po dostaniu się w niepowołane ręce, może przysporzyć wielu nieprzyjemności. Mając oba te parametry (nie zapominajmy, że App ID jest widoczne dla wszystkich), postronna osoba może się podszyć pod nasze konto, co może być fatalne w skutkach dla projektu.

Na tym etapie kończymy krok pierwszy i w zasadzie nasza pierwsza aplikacja jest już gotowa. Wszystkie dalsze kroki i czynności zależą od przeznaczenia aplikacji, czyli gdzie i w jaki sposób będziemy chcieli ją wykorzystywać. Do wyboru mamy cztery rozwiązania: Website, App on Facebook, Facebook Mobile oraz Page Tab.

Website

Dzięki tej opcji można z poziomu zewnętrznej strony uzyskiwać dostęp do zasobów (profilu i niektórych informacji) użytkownika Facebooka. Dla przykładu możemy zintegrować system logowania strony z FB. Użytkownik, będąc na naszej stronie i chcąc się zalogować, będzie miał do dyspozycji specjalny przycisk (np. Połącz się z Facebookiem), po kliknięciu którego zostanie przekierowany do naszej aplikacji. Jeżeli zaakceptuje dostęp do swoich danych, to zostanie on autoryzowany w naszym serwisie. W tym momencie możemy np. utworzyć konto, korzystając z danych uzyskanych przez aplikację.

App on Facebook

Gdy wybierzemy tę metodę autoryzacji, zyskamy możliwość zagnieżdżenia naszej strony w serwisie. Oznacza to, że aplikacja będzie miała adres w stylu: apps.facebook.com/NAZWA_NASZEJ_APLIKACJI/, jednak tak naprawdę będzie się znajdowała na zewnętrznym serwerze.

Facebook Mobile

Umożliwia integrację Facebooka z naszą aplikacją mobilną. Tutaj też trzeba podać dodatkowe klucze, identyfikujące aplikację na naszym smartfonie/tablecie. Jest to bez wątpienia opcja dla najbardziej zaawansowanych użytkowników.

Page Tab

Opcja najczęściej używana przy wszelkiego rodzaju konkursach. Pozwala na zagnieżdżenie naszej aplikacji jako zakładki na naszym "Fan Page".

Jeżeli teraz dla przykładu chcielibyśmy stworzyć bardzo prostą zakładkę lub "App on Facebook", zawierającą już istniejącą stronę (np. czysty HTML + arkusze stylów), to wystarczy wpisać adres strony w odpowiednie pole… np. "Page Tab URL". W ten sposób istniejąca strona zostaje zagnieżdżona na naszym "Fan Page".

Zmiany w bezpieczeństwie

Niestety, w związku z rosnącą popularnością serwisu i aplikacji do przechwytywania loginów i haseł do kont w sieciach Wi-Fi, od 1 października 2011 roku doszły pewne utrudnienia. Otóż Facebook przeszedł w pełni na połączenia szyfrowane (https), w celu podniesienia poziomu bezpieczeństwa, i tego samego będzie wymagał od developerów. Dotychczas, jeżeli użytkownik przeglądał Facebooka po https, to musiał przejść do trybu nieszyfrowanego, aby móc obejrzeć stronę dostarczaną przez developerów używających czystego http. Oznacza to, że istnieje potrzeba wykupienia certyfikatu SSL, by nasze aplikacje mogły być dostarczone przez "HTTP secure". Wiąże się to oczywiście z dodatkowymi kosztami, ale z drugiej strony pozwala znacznie ograniczyć uciążliwość złośliwych aplikacji czyhających w serwisie.

API i SDK

Programiści chcący tworzyć aplikację na platformę Facebook mają do dyspozycji kompleksowe Graph API. API to umożliwia dostęp do niemal wszystkich danych użytkownika dostępnych w serwisie, łącznie z możliwością publikacji treści na tablicy czy wysyłania zaproszeń do innych użytkowników. Niestety, API to ma wiele niedogodności i nie jest zbyt lubiane przez programistów (brak dokumentacji zmian, długie czasy reakcji, ciągle zmieniające się API). Jest to jednak w naszym przypadku jedyne rozwiązanie.

W celu uproszczenia komunikacji z serwisem, Facebook w swoim repozytorium (github.com/facebook) udostępnia SDK do najpopularniejszych języków programowania. Wybór jest naprawdę duży, my jednak zostaniemy przy języku najczęściej wykorzystywanym w pisaniu aplikacji webowych. Mowa oczywiście o PHP. Aby napisać prostą aplikację, należy pobrać odpowiednie SDK - github.com/facebook/php-sdk. W paczce tej znajduje się między innymi plik example.php, z którym warto się zapoznać we własnym zakresie. Zobaczmy, jak wygląda komunikacja API z FB.

Najpierw tworzymy pusty plik PHP i importujemy sobie nasze świeżo pobrane SDK dla PHP.

require 'src/facebook.php';

Następnie budujemy instancję obiektu z SDK, co umożliwi operowanie na jego metodach i bezpośrednią komunikację z API.

facebook = new Facebook(array(

'appId' => '271952222821318'

'secret' => '7057961c7b5401edd978c45c0a833998'

));

Warto zauważyć, że w tym momencie jesteśmy zmuszeni do podania naszego App ID oraz App Secret, które uzyskaliśmy w pierwszym kroku. Dzięki temu Facebook będzie wiedział, że jesteśmy uprawnieni do komunikacji z wcześniej założoną aplikacją, czyli tak naprawdę do komunikacji z serwisem.

Teraz spróbujmy pobrać jakieś dane z konta użytkownika. W tym celu można dla uproszczenia użyć metody getUser(), która zwróci nam ID aktualnie zalogowanego użytkownika.

user = $facebook->getUser();

W ten prosty sposób stworzyliśmy pierwszą aplikację, dzięki której udało nam się połączyć z portalem i uzyskać w odpowiedzi informację. Trudno jest zapewne stworzyć bardziej banalną aplikację, ale moim celem jest bardziej pokazać drogę, niż dawać gotowe rozwiązania. W Sieci znajduje się ogromna liczba poradników na ten temat. Gorąco zachęcam do ich lektury oraz zapoznania się ze stroną developers.facebook.com/apps.

Artykuł pochodzi ze specjalnego dodatku "PC World - Facebook". Pismo można jeszcze zamówić (wysyłka GRATIS!).