SteviesWebsite

Facebook Anwendung mit PHP (Tutorial)

Facebook ist mit über 400 Millionen Benutzern die wohl größte Community der Welt. Mit eigenen Facebook-Anwendungen kann man dort einiges reißen. Ich möchte euch heute ein Tutorial bietet, was nach und nach das Erstellen einer eigenen Anwendung erklärt. 

Was in diesem Tutorial erstellt werden soll ist relativ simpel: Ein Notizblock. Man kann Sachen speichern und später wieder abrufen. 

Registrierung

Als erstes ist natürlich ein Facebook Account erforderlich. Außerdem muss ein Developer-Account aufgesetzt sein. Dafür besucht ihr developers.facebook.com und klickt auf ‘Anwendung für deine Seite erstellen’. Dort gelangt ihr zum folgenden Formular: 

Basisangaben

Basisangaben

Hier gebt ihr den Namen, die Url und die Sprache eurer Seite an. Eine kleine Empfehlung von mir: Legt eine extra Subdomain für die Url an. Ich hatte später ein paar Probleme mit der Hauptdomain, da ich Mod Rewrite verwende. Habt ihr alles eingetragenbekommt ihr folgendes zu sehen: 

API Authentifizierung

API Authentifizierung

 Das kennt ihr zum Beispiel von den Google Webmaster Tools. Ihr ladet die Datei auf eurer Seite hoch und authentifiziert euch als Webmaster der Seite. Dann habt ihr es auch schon geschafft, denn nun bekommt ihr eure Keys: 

Facebook API Keys

Facebook API Keys

Anwendung erstellen

Um nun eine Anwendung zu erstellen müsst ihr auf http://www.facebook.com/developers/ gehen und evtl. Zugriff gewähren. Wenn eure Anwendung dort noch nicht aufgelistet ist, klickt ihr auf ‘Neue Anwendung erstellen’ andernfalls auf den Namen der Anwendung. 

Facebook Developers

Facebook Developers

Ihr gelangt dann zur Übersicht eurer Anwendung. Dort steht ganz unten der Link ‘Kundenbibliothek herunterladen’. Da klickt ihr drauf und speichert die Daten des Ordners /facebook-plattform/phpauf eurem Webspace. Danach klickt ihr weiter oben auf Einstellungen Bearbeiten. Hier gebt ihr alle Angaben zur Seite ein. Wichtig ist, dass ihr den Reiter ‘Leinwand’ ausfüllt. Nach einem Fehler dort musste ich lange suchen! Gebt dort bei ‘Url der Leinwandseite’ den Namen eurer Anwendung ein. Die Canvas Callback Url muss zum Verzeichnis der Facebook-Dateien führen. Wichtig: Am Ende ein ‘/’. 

Eure Anwendung könnt ihr später über die Url der Leinwandseite aufrufen.

Initialisierung

Erstellt die Datei index.php. Darin kommt der nun folgende Code. 

Als erstes muss die Facebook-Klasse importiert werden: 

<?php
  require_once 'facebook.php';
?>

Danach muss das Facebook-Objekt erstellt werden. Hierfür braucht ihr die Keys, die ihr bei der Registrierung bekomen habt: 

<?php
  $appapikey = 'geheim';
  $appsecret = 'geheim';
  $facebook = new Facebook($appapikey, $appsecret);
?>

Login

Natürlich müsst ihr bei der Verwendung auf den User zugreifen. Dafür muss man das Login durchführen. Als Ergebnis bekommt man die Facebook User ID: 

<?php
  $user_id = $facebook->require_login();
?>

DataStore

Der DataStore ist eine Datenbank Facebook, die man über die API ansteuren kann. Dort gibt es Objekttypen, Objekte & Association. Einen Objekttypen ist eine Art Klasse, die ein Objekt beschreibt. In unserem Beispiel nehmen wir das Objekttyp Note. Den Objekttyp erstellt man so: 

<?php
  $facebook->api_client->data_createObjectType('note');
?>

Dieses Objekt kann nun bestimmte Eigenschaften haben. Da ich nur einen Text als Notiz speichere bekommt er die Eigenschaft text. Eigenschaften können folgende Typen sein: 

  • 1: Zahlen
  • 2: Text 255 Zeichen
  • 3: Text bis zu 64kb

In unserem Fall habe ich mich für die 3 entschieden, woraus sich folgender Code ergibt: 

<?php
  $facebook->api_client->data_defineObjectProperty('note','text',3);
?>

Jetzt haben wir die Struktur unserer Datenbank erstellt. Dafür brauchen wir natürlich Daten! Also müssen wir erst einmal ein Objekt vom Typen note erzeugen: 

<?php
  $obj = $facebook->api_client->data_createObject('note',$test);
?>

Diesem Objekt weisen wir nun der oben erstellten $user_id zu: 

<?php
  $facebook->api_client->data_setAssociation('note', $user_id, $obj);
?>

Um ein gespeichertes Objekt über den User wieder zu bekommen müssen wir data_getAssociatedObjects ausführen: 

<?php
  $assocs = $facebook->api_client->data_getAssociatedObjects('note',$user_id);
?>

Als nächstes überprüfen wir, ob der Parameter text mit POST übergeben wurde. Ist das der Fall, speichern wir diesen in unser Objekt: 

<?php
  if($_POST['text']){
   $facebook->api_client->data_setObjectProperty($assocs[0]['id2'],'text',$_POST['text']);
  }
?>

Formular

Fehlt nur noch das Formular mit der Ausgabe. Da beim ersten Aufruf noch kein Text vorhanden ist, habe ich das ganze (unsauber) im Try-Catch gebaut: 

<html>
  <body>
    <h1>Notizblock</h1>
    <form method="POST">
      <textarea name="text" rows="20" cols="50">
        <?PHP
          try{
            echo $facebook->api_client->data_getObjectProperty($assocs[0]['id2'],'text');
          }
          catch(Exception $ex){
          }
        ?>
      </textarea><br />
      <input type="submit" value="Speichern" />
    </form>
  </body>
</html>

Zu guter letzt gibt es nochmal den Code des kompletten Notizblockes: 

<?php
  require_once 'facebook.php';

  $appapikey = 'geheim';
  $appsecret = 'geheim';
  $facebook = new Facebook($appapikey, $appsecret);

  $user_id = $facebook->require_login();

  //Diesen Block nach dem ersten Aufruf entfernen
  $facebook->api_client->data_createObjectType('note');
  $facebook->api_client->data_defineObjectProperty('note','text',3);

  $assocs = $facebook->api_client->data_getAssociatedObjects('note',$user_id);

  if(!$assocs or sizeof($assocs) == 0){
 
  $obj = $facebook->api_client->data_createObject('note',$test);
  $facebook->api_client->data_setAssociation('note', $user_id, $obj);
  }

  if($_POST['text']){
    $facebook->api_client->data_setObjectProperty($assocs[0]['id2'],'text',$_POST['text']);
  }
?>
<html>
  <body>
    <h1>Notizblock</h1>
    <form method="POST">
      <textarea name="text" rows="20" cols="50">
        <?PHP
      try{
            echo $facebook->api_client->data_getObjectProperty($assocs[0]['id2'],'text');
      }
      catch(Exception $ex){
      }
        ?>
      </textarea><br />
      <input type="submit" value="Speichern" />
    </form>
  </body>
</html>

Das Ergebniss könnt ihr euch hier ansehen: http://apps.facebook.com/stevieswebsite/

Hilfsmittel

Bei developers.facebook.com gibt es das Tool API Testkonsole. Hier könnt ihr alle Funktionen der API einsehen und testen.

Wenn euch dieses Tutorial gefallen habt, könnt ihr mich ja mal als Freund hinzufügen, dort bekommt ihr auch alle Neuigkeiten von SteviesWebsite.

RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

10 Kommentare »

  1. cool, danke Stevie, das werd ich bei Gelegenheit mal versuchen… ;o) Gruss

    Kommentar von Roman — 3. April 2010 @ 18:42

  2. danke dir ;-)

    Kommentar von Stefan Wienströer — 3. April 2010 @ 20:01

  3. Wow, vielen vielen Dank, großartig zusammengefasst!

    Kommentar von Justus — 4. April 2010 @ 09:03

  4. *thumbs up*

    Kommentar von Julian D. — 5. April 2010 @ 10:58

  5. Danke für die kleine Einleitung, wusste gar nicht das man so schnell und einfach eigene Apps für Facebook entwickeln kann.

    Werd ich mir in jedem Fall einmal genauer ansehen :)

    Kommentar von Christian — 7. April 2010 @ 11:47

  6. Hey Danke für Deine kurze Einführung in die App-Problematik. Wirklich sehr hilfreich für den Einstieg.

    Viele Grüße,
    Thomas

    Kommentar von Thomas — 13. Mai 2010 @ 22:18

  7. Guter Abriß und Einführung in die Apps von Facebook.

    Kommentar von Bärbel Loy — 12. Juni 2010 @ 09:27

  8. Noch ein Tipp. Falls man den Fehler “invalid url” für das Feld “URL der Webseite” bekommt, dann muss an die URL noch ein “/” hinzugefügt werden.

    http://www.example.de (falsch)
    http://www.example.de/ (richtig)

    Kommentar von Benny — 14. Juni 2010 @ 09:30

  9. Hi, man sollte vielleicht dazu sagen, dass das nur für den alten PHP client gilt. Der auf http://wiki.developers.facebook.com/index.php/User:Client_Libraries zu finden ist. Dazu müssen alle Migrations deaktiviert sein. Hf

    Kommentar von Alex D. — 14. Juni 2010 @ 22:15

Hinterlasse einen Kommentar

Trackbacks/Pingbacks

  1. [...] ihr euch an das Tutorial Facebook Anwendung erstellen? Auf Grund dieses Beitrages habe ich bereits mehrere Anfragen bezüglich (bezahlter) Programmierung [...]

    Pingback von Blogs sind nicht zum Geld verdienen! — 21. Mai 2010 @ 17:24

Code & Blog LogoErstelle dein eigenes CMS mit PHP. Dieses Tutorial wird dir zeigen wie das geht. Also lies dir es durch und frische deine PHP Kenntnisse auf. [mehr...]

LiveEditor - Kostenloser WebEditorDer kostenlose WebEditor hilft dir dabei, deine Website besser zu entwickeln. Mit dem Syntax-Highlighting fällt geht alles viel schneller. Download jetzt! [mehr...]

Facebook LogoErstelle deinen eigenen virtuellen PC. Das ist bereits mit leichten Mitteln möglich, welche Du in diesem Tutorial lernst.[mehr...]

Webservice erstellenWebservices sind oft die Schnittstelle zwischen Server und Client. Wie man mit PHP einen WebService erstellt, lernt ihr in diesem Tutoial. [mehr...]

WebanalyseFür die Verbesserung Deiner Seite solltest Du wissen, wie sich die Besucher verhalten. Diese Artikel zeigen Dir wie man das am geschicktesten macht. [mehr...]

Facebook LogoOptimiere deine MySQL-Datenbank ohne Änderungen am Server. Du bekommst schnellere Abfragen und sparst Speicher.[mehr...]

Blog Tutorials... helfen dir deinen Blog zu verbessern. Nebenbei gibt es noch nützliche Blog-Tools. [mehr...]

Facebook LogoMit Hilfe dieses Tutorials kannst Du deine eigene Facebook Anwendung in PHP programmieren. [mehr...]

  • RSS
  • Blogverzeichnis - Blog Verzeichnis bloggerei.de
Ich biete mich als Lektor für deine Blog-Artikel an.
Sende mir einfach deinen Artikel und ich korrigiere ihn.
© SteviesWebsite.de - Kontakt | Impressum