Facebook Graph API Beginner-Tutorial

2015-10-14 08:21 (Kommentare: 0)

Facebook stellt die Möglichkeit zur Integration des Sozialen Netzwerks in neue oder bestehende Webanwendungen bereit. Neben der inzwischen in die Tage gekommenen Facebook Query Language – kurz FQL – ist dies die Graph API.

Was ist die Facebook Graph API?

Die Facebook Graph API kann als Kern der Facebook-Plattform gesehen werden. Sie stellt Funktionen bereit, um Daten zu schreiben und auch auszulesen. Als Technologie setzt Facebook auf Open Graph und JSON. Entwicklerkits gibt es für unterschiedliche Programmiersprachen. Zu diesen zählen auch die beliebten Sprachen PHP, Java und JavaScript.

Zum Kennenlernen: Graph API Explorer

Wer ohne ein SDK oder Software zu installieren mit Graph API Requests spielen möchte, findet mit dem Graph API Explorer das passende Tool. Facebook stellt mit diesem einen Service für Interessierte und Entwickler zur Verfügung. Einfach erstellt ihr dort Requests – auch ohne tiefgreifende Kenntnisse im Programmieren und der Facebook App-Entwicklung. Für Einsteiger ist dabei der Codegenerator, der den PHP-Code für den erstellten Request generiert, besonders praktisch.

Erster Schritt zum Facebook-Entwickler: Developer werden und App anlegen

Zum Start müsst ihr Facebook Developer werden und anschließend eine App erstellen. Dies ist unkompliziert unter https://developers.facebook.com/ und https://developers.facebook.com/apps/ möglich.

Auch wenn ihr nur einen Login auf eurer Site implementieren wollt, ist eine Facebook App anzulegen. Dazu benötigt ihr neben eurem Facebook-Login lediglich noch die Root-URL eurer WebApp. Zu merken gibt es nicht viel: Lediglich die appID und app secret solltet ihr euch notieren.

Aller Anfang der Facebook Entwicklung: Das Graph API SDK 

Facebook stellt für Entwickler ein Software Development Kit (SDK) zur Verfügung. Dies erhaltet ihr unter der https://developers.facebook.com/docs im Abschnitt „APIs and SDKs“. Wählt ein SDK passend zu eurem System. Als besonders flexibel gilt die Integration mittels JavaScript. Doch auch das PHP SDK ist beliebt. In dem genannten Abschnitt findet ihr auch Code-Beispiele für eure ersten Schritte.

Installation des PHP SDK

Der Login in eine Website mittels Facebook-Account gehört heute praktisch schon zum Standard. Als Beispiel für eine Facebook-Anwendung greifen wir den Facebook-Login auf. Wir zeigen euch, wie ihr das mit PHP und der Graph API löst:

Die einfache und empfohlene Variante zum Einbinden der Graph API ist der Composer. Ihr fügt lediglich den folgenden require-Eintrag in die composer.json Datei:


{
"require" : {
    "facebook/php-sdk-v4" : "~5.0"
  }
}

Anschließend installiert ihr das Package mittels Kommandozeilen-Befehl:


Composer install

Um sicherzustellen, dass Composer auch in eurem PHP-Skript verwendet wird, fügt ihr in dessen Kopf-Zeilen den folgenden require-once-Befehl ein:


require_once __DIR__ . '/vendor/autoload.php';

Um sicherzustellen, dass Composer auch in eurem PHP-Skript verwendet wird, fügt ihr in dessen Kopf-Zeilen den folgenden require-once-Befehl ein:


require_once __DIR__ . '/vendor/autoload.php';

Ohne Composer müsst ihr das Facebook-Graph API-Package selbst auf euren Server laden. In die obersten Zeilen eures Skripts fügt ihr dann die folgende Anweisung ein:


require_once __DIR__ . '/path/to/facebook-php-sdk-v5/src/Facebook/autoload.php';

Initialisierung des SDK

Nach der Installation müsst ihr das SDK initialisieren. Dazu benötigt ihr die AppID und die App-Secret. Diese habt ihr beim Erstellen der Facebook App auf den Facebookseiten erhalten (siehe Artikelanschnitt Erster Schritt zum Facebook Entwickler).


$fb = new Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  ]);

Zugriff auf Facebook-Daten

Facebook hat ein strenges Rechtemanagement. Dies wurde mit den neuen Graph API Versionen strikter. Für den Zugriff auf ein User-Profil benötigt ihr einen gültigen Access-Token. Diesen liefert der LoginHelper von Facebook.


$helper = $fb->getRedirectLoginHelper();
$callback = 'http://example.com/fb-login-callback.php';
$loginUrl = $helper->getLoginUrl($callback, $permissions);

Wollt ihr mehr als nur den Usernamen – also beispielsweise die E-Mail-Adresse oder Zugriff auf die Posts oder Fotos der User, müsst ihr euch vom User die Rechte dazu geben lassen. Das ist einfacher als es sich im ersten Moment anhört. Der LoginHelper übernimmt dies für euch. Dazu fügt ihr Permissions zum getLoginUrl-Aufruf hinzu:


$permissions = ['email', 'user_posts']; // optional
$callback = 'http://example.com/fb-login-callback.php';
$loginUrl = $helper->getLoginUrl($callback, $permissions);

Via Funktion getAccessToken erhaltet ihr vom LoginHelper den benötigten Access-Token:


try {
  $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // Graph Communication Error
  echo $e->getMessage();
  exit;
}

Den so gewonnen Access-Token setzen wir beim Request ein:


$request = new Facebook\FacebookRequest($fbApp, $accessToken, 'GET', '/me');

Anschließend senden wir den Request an den Graphen


// Send the request to Graph
try {
  $response = $fb->getClient()->sendRequest($request);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // validation fails or other local issues
  echo 'Facebook SDK error: ' . $e->getMessage();
  exit;
}

War der Request erfolgreich, erhalten wir einen Knoten des Graphen. Diesen können wir mit unserer Webanwendung auswerten:


$graphNode = $response->getGraphNode();

echo 'User name: ' . $graphNode['name'];

Weitere Infos findet ihr zudem im Getting Startet Youtube-Video von Facebook Developers.

Zurück

 
domainssaubillig © 2007-2024 Alle Rechte vorbehalten. | Support | AGB | Datenschutzerklärung | Impressum