Folgender Text war gestern in Facebooks Developer Blog zu lesen:

On March 11, 2011, you will no longer be able to create new FBML apps and Pages will no longer be able to add the Static FBML app. While all existing apps on Pages using FBML or the Static FBML app will continue to work, we strongly recommend that these apps transition to iframes as soon as possible.

Doch was heißt das nun genau? Was ändert sich für den Fanpage-Betreiber?

Was ist neu für Fanpage-Betreiber?

Viele Seitenbetreiber haben ihre Landing-Pages bisher mit StaticFBML Applikationen gestaltet, um Fans und Nicht-Fans andere Inhalte zu zeigen. Ab dem 11.März 2011 kann Static-FBML nicht mehr genutzt werden. Alte Landing-Page bleiben zwar aktiv, es wird aber empfohlen diese ebenfalls auf iframe umzustellen. Neben den StaticFBML-Landing-Pages sind ebenfalls viele FBML-Applikationen im Umlauf. Ab März können diese nicht mehr neu installiert werden. Für Seiten Betreiber heißt dies die alten Apps auf die neue Technik umzustellen, da Facebook früher oder später FBML ganz abschalten wird. Zwar ist die Umstellung erst ein wenig Aufwand, doch bringt die neue iframe Technik auch Vorteile. So lassen sich nun die Social Plugins in den Tab integrieren und die Seitenbetreiber müssen nicht wie wild Pfeile auf den Like-Button über der Landing-Page Grafik setzen. Zwar blockiert Facebook aus Sicherheitsgründen weiterhin einen Teil des javascript-Codes, doch die Gestaltung von Page-Applikationen wird deutlich vereinfacht und ähnelt dem normalen Bau einer Homepage mit HTML, CSS und Javascript.

So erstellen Sie eine iframe-Landing-Page mit Like-Button für Fans und Nicht-Fans

Hier nun die Schritt-für-Schritt Anleitung zum ersetzen ihrer bisherigen StaticFBML-Landing-Page durch die iframe-Technik. Voraussetzung ist, dass Sie ihre Seite bereits auf das neue Facebook-Seiten umgestellt haben. Das geht unter folgender  URL: http://www.facebook.com/pages/status/

iframe-Landing-Page in php erstellen

Um zwischen Fans und Nicht-Fans zu unterscheiden gilt es den “signed-request”-Parameter von Facebook auszuwerten. Dazu stellt Facebook auf der Homepage eine Funktion zur Verfügung. Wir stellen Ihnen hier einen einfachen Beispiel-Code zur Verfügung. Speichern Sie diesen und legen Sie diesen in einer php-Datei auf ihrem Server ab. Später müssen Sie den Dateipfad bei der App-Konfiguration angeben. Ein funktionierendes Beispiel finden Sie auf unser iConsultants Apps Fanpage. Hier der Beispiel-Code:

if ($data['page']['liked']) {
   echo "

Du bist Fan von unserer Seite!

";
} else {
   echo "

Du bist noch kein Fan!

";
   // Hier den Like-Button für ihre Fanpage einfügen (http://developers.facebook.com/docs/reference/plugins/like)
   echo ''; }
?>

Hier gibt es den Code zum Download: Facebook iframe-Landing-Page mit Like-Button.

Facebook iframe Applikation anlegen

  1. Legen Sie eine neue Applikation an (http://www.facebook.com/developers/)
  2. Stellen Sie unter dem Punkt “Facebook-Einbindung” folgende Einstellungen ein:
  3. Speichern Sie die Anwendung, kopieren Sie den “Anwendungs-Geheimcode” in ihren PHP-Code und fügen Sie diese zu ihrer Seite hinzu.
  4. FERTIG.

Neben der Abfrage nach Fan oder Nicht-Fan können Sie ebenfalls abfragen, ob der Nutzer Administrator der Seite ist ($data[‘page’][‘admin’]). Wenn der Nutzer bereits die Applikation bestätigt hat, ist es zudem möglich auf seine Daten zuzugreifen und ihn persönlich zu begrüßen… Dies führt aber hier zuweit und folgt in einem der nächsten Posts. Wie immer freue ich mich über Kommentare und Diskussionen. Beste Grüße aus Dublin, Sebastian

Schlagwörter ,
  • Danke Sebastian – dies steht jetzt drin

    } if ($data[‘page’][‘liked’]) {
    echo “Du bist Fan von unserer Seite!”;
    } else {
    echo “Du bist noch kein Fan!”;

    echo ”;
    }

    Wo muß ich Deinen Code eintragen? Sorry – aber ich bin jetzt nicht soooo ein Experte!!! Leider!

  • Zuerst vielen Dank an all die – die sich immer solche Mühe geben und uns DAU´s helfen!!!
    Nun zu meiner Frage – alles gemacht – iframe mit Script nebst “Geheimcode” eingebunden – Effekt: Er erkennt, wer Fan ist oder nicht – Prima. Aber beide – ob Fan oder nicht – kann alles lesen – das war doch soo nicht gedacht – oder nicht?

    Ich brauch bedauerlicherweise Hilfe!!!

    René

    • Hallo René,
      ich vermute, dass du für Fans anderere Inhalte als für Nicht-Fansanzeigen möchtest. “Aber beide – ob Fan oder nicht – kann alles lesen” – Dies bedeutet für mich, dass nach der if-Abfrage noch weiterer Inhalt angezeigt wird, der aber nur für Fans angezeigt werden soll.

      Deshalb mein Vorschlag:
      if ($data['page']['liked'] == false) {
      echo "

      Du bist noch kein Fan von unserer Seite!

      ";
      echo '';
      exit();
      }

      Mit exit wird die Ausführung der Seite abgebrochen, wenn derjenige kein Fans ist. So werden für nicht Fans nur die eine Überschrift und der Like Button angezeigt.

      Ich hoffe das hilft weiter.

      Beste Grüße,
      Sebastian

  • Dieter

    Hi und Danke, für diese tolle Anleitung.
    Ich habe noch folgende Frage:
    wenn ich nun Fan bin und eine dritte Seite aufrufen möchte, dazu das Script nutze, funktioniert das leider nicht ?!?

    function base64_url_decode($input) {
    return base64_decode(strtr($input, ‘-_’, ‘+/’));
    }if ($data[‘page’][‘liked’]) {
    echo “Du bist Fan von unserer Seite!”;
    echo”weiter“;
    } else ……….
    In dritte. php nutze ich nun genau das selbe script werde nun aber nicht als fan erkannt ?

    Wie fragt man denn in neuen Seiten den Status ab ?

    …ich hoffe, Du verstehts mich :-) ?

    Grüße … Dieter

    • Hi Dieter,
      ich denke ich weiß was du meinst. Du hast wahrscheinlich innerhalb des iframes einen link auf eine andere Datei gesetzt: z.B. Link
      Der Link wird dann im iframe ausgeführt und die Datei dritte.php angezeigt. Das Problem hierbei ist aber nun, dass von Facebook das signed_request ($_REQUEST) nicht mehr übergeben wird und somit kein access-token vorhanden ist, um auf Facebook Daten zuzugreifen.
      Wir lösen das Problem in unseren Applikationen durch Sessions. Wir speichern alle erforderliche Daten in der ersten aufgerufenen Datei in die Session und greifen dann in der dritten Datei wieder auf die Session zu. Das ermöglicht es neue php-Dateien innerhalb des iframes zu laden.
      Eine andere Möglichkeit besteht darin die App immer neu zuladen und einen Dateinamen in einem GET-Parameter zu übergeben. In der index.php wird der GET-Parameter dann ausgelesen und die entsprechende übergebene Datei dann mittels php-include nachgeladen. Diese Lösung gefüllt mir persönlich aber nicht so gut, da immer ein kompletter Page-Load erforderlich ist.

      Ich hoffe das hilft dir weiter.

      Viele Grüße,
      Sebastian

  • Hallo Stephan,
    seit kurzem frägt Facebook, ob die Einstellungen (FanPage, Kategorie) noch korrekt sind. Wenn dies bei DIr kommt, kannst Du vielleicht die Facebook Page ändern.
    Ich habe auch schon erlebt, dass Facebook plötzlich eine FanPage als Gemeinschaftsseite “hochstuft”.Oder ist das Herabstufen?
    Gruß
    Andy

  • Hi Stefan,

    habe grade intensiv darüber nachgedacht, aber leider fällt mir spontan auch keine Lösung ein. Es handelt sich um eine Seite, du hast sie angelegt und bist somit eindeutig Admin. Hast du schon mal einen weiteren Tab integriert? Vielleicht hat es etwas damit zu tun, dass du nur einen Tab hast. Oder probier doch mal einen anderen Browser, da gibt’s ja auch immer wieder Überraschungen. Wenn du die Lösung deines Problems findest oder einen Schritt weiter kommst, lass es uns doch wissen. Wir sind immer interessiert an Neuigkeiten.

    Beste Grüße,
    Sebastian

    • Also nach wirklich ewig langem suchen hab ich eine erklärung gefunden. Ob sie richtig ist weiss ich nicht.

      Also demnach ist Page nicht gleich Page. Community Pages haben die Möglichkeit grundsätzlich nicht (mehr).
      Unternehmensseiten sehr wohl.

      In welchem Schritt der “Gründung” das festgelegt wird weiss ich nicht da man das nicht auswählen kann. Eventuell mit der Kategorie. Diese dürfte dann aber fix sein denn wenn man die Kategorie nachträglich ändert bleibt das Ergebnis das gleiche.

      :-(
      Lustigerweise gibt`s aber Leute die verschiene Pages betreiben und auch die selben Kategorien angelegt haben. Bei einer Seite geht`s, bei der anderen nicht. Somit kommt auch ein Bug auf Seiten FB in den Bereich des Möglichen.

  • Mir fehlt in den Einstellungen die Möglichkeit die Landing Page auszuwählen.

    Ich weiss nicht was ich machen soll oder wo der Fehler liegt. Habt ihr irgendeine Idee?

    Hier steht wie es aussehen soll: http://www.socialappshq.com/help/change-default-landing-page-for-facebook-page

    Der Menüpunkt “Default Landing Tab” fehlt bei mir einfach.

    Hier ist meine Seite: http://www.facebook.com/stephanvereno.photography

    Ich bin ratlos….

    lg Stephan

  • Mirja

    Hallo

    vielen Dank für den Beitrag. Ich bin nicht so besonders fit in php und Facebook, eine Anfängerin, deswegen hat mir Ihr Artikel besonders gut gefallen und ich habe es auch direkt ausprobiert.

    Eine Frage habe ich aber noch: Ist es denn mit dieser Variante möglich, Fans zum Beispiel auf die Pinnwand zu leiten und Nicht-Fans dann auf die Landing Page?

    Oder habe ich es einfach nicht verstanden?

    Vielen Dank schon mal im Voraus für Antwort.

    • Hi Mirja,
      es ist prinzipiell sowieso so, dass bestehende Fans beim Aufruf der Seite auf die Pinnwand geleitet werden. Für Nicht-Fans kann man den Tab bestimmen, auf dem diese landen. Dafür klickt man auf der eigenen Fanpage auf “Seite bearbeiten”. Der Rest ist in folgendem Screenshot ersichtlich:
      Facebook Landing Page für Nicht-Fans einstellen.

      Ich hoffe das hilft weiter.

      Beste Grüße,
      Sebastian

      • Mirja

        Hi Sebastian,

        ja, das hat mir sehr weiter geholfen, vielen Dank. Dadurch, dass ich immer nur als Admin auf die Seite sehe, sehe ich natürlich nicht, wie es für einfache Fans oder Nicht-Fans ist. Ich hatte das schon so eingestellt und habe nach deinem Hinweis mal ein Testprofil eingerichtet, mit dem ich die verschiedenen Optionen auspobieren kann. Und siehe da, es funktioniert. Also, vielen Dank nochmal.

  • Claudia

    Danke!

    Gibt es eventuell im Code die Möglichkeit die Buttonfarbe zu ändern und die Mailadresse vom neuem User anzufordern?

    • Hi Claudia,

      ja klar. Den Button kannst du natürlich durch deinen eigenen Button austauschen. Um die Email Adresse abzufragen benutzen wir javascript Code. Eine gute Informationsquelle ist hier das fbdevwiki.com. Auf dieser Seite http://fbdevwiki.com/wiki/FB.ui unter permission.request findest du alles was du brauchst. Die Email-Adressen kannst du dann auf der Folgeseite auslesen.

      Ich hoffe das hilft schon mal weiter….

      Viele Grüße,
      Sebastian

  • Super Andreas,
    vielen Dank. Habs korrigiert.

  • Hallo, da ist ein kleiner Fehler in dem Script:

    echo “Du bist Fan von unserer Seite!”;

    //fehlt
    }
    //fehlt

  • Hi Hendrik,
    stimmt, dass hatte ich nur kurz angedeutet. Vielen Dank für den Link. Ich habe diesen noch in den Text mit aufgenommen. Du hattest bei Facebook noch geschrieben, dass etwas nicht funktioniert. War es die Umstellung auf die neue Seite oder gibt es noch Probleme?

  • Lehrreicher Blogpost. Interessant, wenn man sowas auch mal aus einem anderen Blickwinkel beschrieben lesen kann.

  • Nette Anleitung, jedoch solltest du besser klar machen dass die I-Frame Funktion derzeit NUR funktioniert in Seiten die nach den neuen Design upgedatet sind, UND wie man das macht : http://www.facebook.com/pages/status/