Facebook Apps brauchen Pflege

Facebook bietet Firmen über die Tab- und Canvas-Apps eine grossartige Plattform an, um ihre Produkte zu bewerben. Dank der tiefen Integration mit der Facebook Datenbank kommen die Firmen an wertvolle Daten ihrer Kunden. Ausserdem wird ihre Nachricht durch die Kunden selbst kostenlos verbreitet. Darum sind Facebook Applikationen auch sehr beliebt.

Mehr als die Hälfte meiner Projekte in den letzten neun Monaten waren Facebook Apps.

Facebook selbst etwickelt sich aber auch ständig weiter. Ein grosser Schritt war Anfang 2011 die Möglichkeit, komplette Webseiten (als iFrames) als Tab auf Facebook einzubinden. Gleichzeitig kam aber auch die Ankündigung, dass Tabs mit der bisher benutzten FBML Technologie nicht mehr zugelassen werden und irgendwann abgeschaltet werden. Deadline hierzu ist der 1. Juni 2012.

So wie sich das Design und die Möglichkeiten von Facebook ständig änderten und weiterentwickelten, so änderte sich auch die API für die Entwickler regelmässig. Diese hatten keine Freude daran, dass sie fertige Applikationen ständig anpassen mussten und machten ihrem Ärger im Entwicklerforum von Facebook Luft.

Facebook erkannte, dass die externen Entwickler für den Erfolg der Plattform ebenfalls wichtig sind und startete deswegen die Operation Developer Love. Ein erstes Resultat war die 90-Tage Breaking Change Policy. Änderungen an der API werden nun drei Monate im Voraus angekündigt.

Drei Monate klingt nach viel Zeit - was es aber oft leider nicht ist. Eine grosse Änderung, wie z.B. die OAuth Umstellung letzten Herbst, braucht je nach Alter der App einige Stunden bis hin zu zwei Tagen. Bei zehn Facebook Apps müssten wir im schlimmsten Fall 20 Tage investieren, nur um funktionierende Apps am Laufen zu halten.

Die Drei-Monate-Regel gilt allerdings nur für grössere Anpassungen. Bugfixes und Sicherheitsupdates werden sofort eingespielt (so geschehen beispielsweise Anfang Februar). Facebook hat eine drei Jahre alte Sicherheitslücke geschlossen, ganz ohne Ankündigung. Da diese Sicherheitslücke verhindert hat, dass der Login-Screen auf dem IE angezeigt wurde, haben natürlich alle Drittentwickler einen eigenen Fix benutzt, welcher den Fehler von Facebook korrigierte. Nach dem Update funktionierte dieser Fix aber nicht mehr und von einem Tag auf den andern funktionierten auch mehr als die Hälfte unserer Facebook Apps nicht mehr. Zum Glück war die Anpassung nicht schwer. Aber es dauerte ein paar Tage, bis ich das Problem zufällig entdeckte.

Wir entgehen dem Problem einer sich ändernden API, indem wir nicht mehr direkt gegen die Facebook API programmieren, sondern unsere eigene API entwickelt haben, welche als Puffer dient. Bei einer Änderung von Facebook Seiten müssen wir nur unsere API anpassen, und somit bei den einzelnen Kundenprojekten keine oder nur minimale Anpassungen machen.