Facebook, iFrame Applikationen und Cookies
Facebook Applikationen zu entwickeln ist nicht einfach, vor allem dann nicht wenn man genötigt wird mehrere Browser zu unterstützen.
Während der Mozilla Firefox wie immer spurt, muss man für den Internet Explorer und auch den Safari etwas tiefer in die Trickkiste greifen, vor allem wenn es sich um iFrame Applikationen handelt.
Internet Explorer und Safari sind leider nicht befähigt Cookies aus iFrames zu setzen und später wieder auslesen zu können. Naja fast zumindest, der Internet Explorer hält sich glücklicherweise an den P3P Standard des W3C und so kann man dank geschickter Header-Konfiguration das Setzen der Cookies erzwingen.
Der Safari lässt sich davon leider nicht beeindrucken, glücklicherweise liefert Facebook mittlerweile einen Work-a-round für das Problem: Beim Anlegen einer neuen Facebook Applikation läßt sich der Parameter "OAuth 2.0 for Canvas" aktivieren. Dies hat zur Folge dass Facebook beim ersten Request auf die Applikation den GET Parameter "signed_request" mitschickt. Hängt man diesen Parameter konsequent an alle generierten Urls funktioniert das Session- und Facebook-Tracking auch mit dem Safari problemlos. Seit einigen Wochen aktiviert Facebook die Option standardmäßig wenn man eine neue Applikation anlegt.