úterý 2. prosince 2008

Facebook a Java

Kdo zkusil Facebook ví, že jeho půvab tkví v možnosti přidávat aplikace třetích stran. Pro přidání podpory Facebooku do stávající aplikace vytvořené v Javě nebo do aplikace nové, se hodí použít některou z knihoven.

Vývoj oficiální javové knihovny pro Facebook byl 5. května 2008 ukončen. Což je svým způsobem škoda, protože pro ni existovalo množství tutoriálů: první, druhý a třetí díl nebo návod na vytvoření autentizačního filtru.

Žezlo přejal projekt Facebook Java API, který přejal základnu zdrojových kódů, ke které přidal podporu JSON a dalšího XML. Díky tomu se staly starší návody nepoužitelné a nové nejsou, a (dle mého názoru) už dost zoufalé zdrojáky, nepostižené například objektovým programováním, dostaly další ránu Takže programátor používající knihovnu je nucený vypořádávat se z objekty typu JSONArray nebo Document -- třídy jsou pohříchu generifikované, čili podle použitého backendu (JSON/XML DOM/JAXB) z nich padají příslušné a pokaždé jiné typy objektů.

Knihovna FB4J zatím ve verzi 0.1.1-alpha, ale nabízí čistý kód (i když s poměrně rozsáhlými závislostmi), na webu je JavaDoc i ukázková aplikace.
Je sestavovaná Mavenem, ale nenašel jsem repozitář, který by ji obsahoval. Jar je ale možné naimportovat:
mvn install:install-file -DgroupId=fb4j -DartifactId=fb4j -Dversion=0.1.1-alpha -Dpackaging=jar -Dfile=fb4j-0.1.1-alpha.jar -DpomFile=pom.xml
a jako pom.xml se použije ten z jaru, jen jsem zakomentoval závislost na LaunchBrowser a json-lib bylo potřeba změnit na:
<dependency>
<groupid>net.sf.json-lib</groupid>
<artifactid>json-lib</artifactid>
<version>2.2</version>
<classifier>jdk15</classifier>
</dependency>
Nicméně knihovna zřejmě nepodporuje přístup z iFrame:
org.apache.commons.lang.NotImplementedException: Code is not implemented
at net.sf.fb4j.canvas.IFrameResponse.<init>(IFrameResponse.java:43)
at net.sf.fb4j.canvas.CanvasRequest.getCanvasResponse(CanvasRequest.java:220)
at net.sf.fb4j.canvas.CanvasFilter.doFilter(CanvasFilter.java:104)

JavaBook je knihovna zaměřená na vývoj aplikací psaných ve FBML s použitím FQL (Facebook Query Language), tedy nikoli na iFrame nebo dokonce desktopové aplikace.

Obávám se, že experimenty s Facebook API se prozatím odkládají...

Žádné komentáře:

Okomentovat