Facebook und Twitter Website-Integration mit Drupal

Es kann unterschiedliche Gründe dafür geben, die Inhalte einer virtuellen Bildungsplattform auch über soziale Netzwerke zu verbreiten. So ist es gerade bei Projekten im Bereich der nicht-institutionalisierten Bildung häufig erforderlich, das jeweilige Bildungsangebot bekannt zu machen und um Teilnehmer zu werben. Hierbei kann eine Einbindung der Website in soziale Netzwerke hilfreich sein. In diesem Blogbeitrag skizziere ich die Konfiguration einer Einbindung von Facebook und Twitter über die Open Source Software Drupal.

Drupal bietet eine so große Vielzahl an Modulen im Bereich der Integration von Facebook und Twitter, dass man schnell den Überblick verliert. Wichtig war mir für die Konfiguration eine individuelle Gestaltung der Postings in den sozialen Netzwerken. Hierzu sollte die Konfiguration nicht nur eine Auswahloption über das Posten bzw. Nicht-Posten anbieten, sondern jeweils auch die Eingabe eines spezifischen Textes für die Facebookseite und den Tweet ermöglichen. Eine solche Konfiguration hat insgesamt den Vorteil, dass nur wenige grundlegende und weit verbreitete Module erforderlich sind. Die genaue Ausgestaltung der Postings muss dann nicht über Twitter- und Facebook-Module erfolgen, sondern kann mithilfe von Rules konfiguriert werden.

Wer diesem Weg folgen möchte, dem sei die folgende Schritt-für-Schritt Anleitung empfohlen. Solltest Du Fragen zu dieser Anleitung haben, dann kannst Du gerne zu mir Kontakt aufnehmen.

1. Konfiguration des Twitter-Moduls

a) Modul-Installation

Zunächst müssen die erforderlichen Module installiert werden. Für Twitter habe ich das grundlegende Twitter Modul ausgewählt. Es ist ausreichend nur das Hauptmodul (Twitter) zu aktivieren. Auf die Aktivierung der mit enthaltenen Module Twitter Actions, Twitter Post und Twitter Sign in kann verzichtet werden.
Die Aktivierung des Twitter Moduls setzt die Installation des OAuth Moduls voraus. Später werden wir außerdem noch auf das Shorten URL Modul zurückgreifen, so dass Du dieses hier ebenfalls schon mit installieren kannst.

b) Twitter-App-Registrierung

Um das Twitter-Modul zum Laufen zu bringen, muss zunächst eine Twitter-App auf der Website registriert werden. Das funktioniert folgendermaßen:

  • die URL www.deine-website.de/admin/config/services/twitter/settings aufrufen und dort die Angabe für die Callback URL kopieren.
  • bei Twitter mit dem Account anmelden, auf den von der Website aus gepostet werden soll.
  • Zur Twitter-App-Page gehen und dort einen Namen für die App, eine Beschreibung (beides beliebig wählbar), die URL Deiner Website und die von der Website im ersten Schritt kopierte Angabe der Callback URL eintragen.
  • dem Developer Agreement zustimmen und die App erstellen.
  • auf der Seite der App findest Du im Tab „Keys und Access Tokens“ die beiden Schlüssel, die Du auf Deiner Website für die Konfiguration benötigst.
  • beide Schlüssel nacheinander kopieren und auf der URL www.deine-website.de/admin/config/services/twitter/settings eintragen.
  • diese Angaben speichern.
  • zur URL www.deine-website.de/admin/config/services/twitter gehen und dort auf den Button „Go to Twitter to add an Authenticated Account“ gehen. Gegebenenfalls musst Du Dich vorher bei Twitter ausloggen. Du wirst dann zu Twitter zum Einloggen und wieder zurück auf Deine Website geleitet. Dort sollte jetzt der gewünschte Account auftauchen.

Achtung: Kleinigkeiten, die falsch eingetragen sind, können es verhindern, dass die Registrierung klappt und dann kann das ganze ziemlich nervig werden, weil Drupal einem wieder und wieder die Nachricht zeigt „Could not obtain a valid token from the Twitter API. Please review the configuration.“ Ein typischer Fehler ist z.B. beim Kopieren der Codes für die App ein Leerzeichen am Anfang mitzukopieren oder das Feld für die Callback URL aus Versehen freizulassen, weil es kein Pflichtfeld ist …
Mehr Fehler und Lösungsvorschläge sind hier zu finden: https://www.drupal.org/node/1929378

2. Konfiguration des Facebook-Autopost-Moduls

a) Module installieren

Für Facebook empfehle ich das Facebook-Autopost-Modul. Es enthält die Module Facebook Autopost, Facebook Autopost Entity, Facebook Autopost Types und Facebook Permissions. Für unsere geplante Konfiguration müssen alle diese Module aktiviert werden. Sie setzen die Installation einiger anderer grundlegender Module wie Entity API oder Libraries voraus. Diese dürften aber in den meisten Drupal-Konfigurationen ohnehin schon installiert sein. Falls nicht, macht das System Dich darauf aufmerksam.

b) Facebook-Library hochladen

Als nächstes musst Du in den Libraries-Ordner Deiner Drupal-Installation den Ordner Facebook PHP SKD hochladen.

c) Facebook-App erstellen

Ähnlich wie bei Twitter muss auch bei Facebook eine entsprechende App erstellt werden. Hierzu musst Du Dich mit dem gewünschten Account bei Facebook anmelden und auf der Facebook-Developer-Page unter dem Menü-Punkt „My Apps“ auswählen, dass Du eine neue App erstellen willst. Hierzu zunächst Auswahl „für Website“ treffen, dann einen beliebigen Name eingeben, passende Kategorie auswählen und erstellen klicken.  
Auf der Übersichtsseite der App findest Du nun die App ID und die App Secret, die Du auf Deiner Website auf der URL www.deine-website.de/admin/config/services/fbautopost eintragen musst. Wenn Du beide Codes übertragen hast, musst Du noch unter Settings die App-Domain eintragen und Dich dann bei Facebook abmelden.

d) Berechtigungen festlegen und App registrieren

Auf der URL www.deine-website.de/admin/config/services/fbpermissions solltest Du nun für die gewünschten Rollen zusätzlich zu den bereits angeklickten Optionen einmal bei „Extended Permissions“ die Option „Publish Actions“ auswählen und bei „Open Graph Permissions“ ebenfalls. Danach gehst Du zur URL  www.deine-website.de/admin/config/services/fbautopost (hier hast Du vorhin Deine APP-ID's eingetragen) und wählst aus, dass Du Dich bei Facebook anmelden willst. Dir wird angezeigt, dass Du Deiner Website damit Zugriff auf Dein Facebook-Profil ermöglichst. Das solltest Du bestätigen. Außerdem kannst Du wählen, für wen Postings von Deiner Website sichtbar sein sollen. Im Fall der Bildungsplattform habe ich hier „öffentlich“ gewählt.

3. Felder in den gewünschten Inhaltstypen einrichten

In diesem Schritt musst Du Dir überlegen, bei welchen Inhaltstypen welche Inhalte bei Facebook und Twitter gepostet werden sollen. Eine Möglichkeit wäre, den Inhaltstyp „Artikel“ zu wählen und hier zwei Boolean-Felder zu ergänzen: Bei Facebook posten? Bei Twitter posten? Zusätzlich könntest Du zwei Textfelder ergänzen: einmal für den gewünschten Facebook-Post und einmal für den gewünschten Tweet. Als Format kannst Du hier Plain-Text wählen. Auf diese Weise können Nutzer, die einen Artikel schreiben, anklicken, wenn sie den Artikel auch bei Facebook und/ oder Twitter veröffentlichen wollen - und falls ja mit welchem Text.
Optional kannst Du das Modul Conditional Fields installieren, um das Artikeleingabe-Formular noch etwas benutzerfreundlicher zu machen: Mit diesem Modul ist es Dir möglich, festzulegen, dass die Textfelder für den Facebook-Post und den Tweet erst dann erscheinen, wenn die Option „Bei Facebook posten?“ oder „Bei Twitter posten?“ angeklickt werden. Eine weitere Ergänzung kann darin liegen, dass Du das Tweet-Feld mithilfe des Moduls Maxlength in seiner Zeichenzahl begrenzt, so dass keine zu langen Tweets eingegeben werden.

4. Rules schreiben

Wenn Du bis hierher gekommen bist, hast Du das meiste geschafft. Jetzt musst Du nur noch das Rules-Modul installieren und die Rules schreiben, die dafür sorgen, dass bei einer bestimmten Aktion auf Deiner Website die gewünschten Postings bei Twitter und Facebook erscheinen. Hierzu gehst Du zur URL www.deine-website.de/admin/config/workflow/rules/reaction/add und legst beispielsweise die folgenden Regeln fest:

a) bei Twitter posten.

Als „Event“ wählst Du „Nach dem Speichern von neuem Inhalt“ (Wähle die Inhaltstypen aus, bei denen Du oben die entsprechenden Twitter-Felder angelegt hast.
Unter „Conditions“ wählst Du „Data Comparison“, womit Du festlegen kannst, dass die folgende Aktion nur dann lanciert wird, wenn Dein gestaltetes „Bei Twitter posten?-Feld“ angeklickt wurde.
Unter „Actions“ wählst Du aus, dass eine Nachricht bri Twitter gepostet werden soll. Dabei kannst Du festlegen, wie diese Nachricht aussehen soll, also z.B. [node:Bezeichnung Deines Tweet Text Feldes] [node:url:shorten] (das setzt durch das oben installierte Shorten URL Modul einen Kurzlink zu Deinem Artikel). Auf diese Weise wird der Text Deines Tweet-Feldes zusammen mit einer Kurz-URL getweetet.

b) bei Facebook posten

Die Schritte bei Event und Conditions gestaltest Du hier in der gleichen Art und Weise wie oben bei Twitter beschrieben. Die Aktion, bei Facebook zu posten, setzt dann allerdings eine etwas aufwändigere Konfiguration voraus. Denkbar wären z.B. die folgenden Einstellungen.

  • Wähle die Aktion „Create a new entity“, wobei es sich dabei um eine FB Publikation mit dem Typ „Link“ handeln soll (Das wird die häufigste Variante sein). Damit erhältst Du eine Variable, die Du z.B. FB Publication nennen kannst.
  • Anschließend musst Du die Felder dieser FB Publication festlegen. Das machst Du jeweils über die Aktion „Set a data value“. Damit der Post bei Facebook richtig und vollständig aussieht, ist es empfehlenswert, mindestens die folgenden Felder festzulegen:
    • fbpublication:field-facebook-message – hierfür könntest Du z.B. das Facebook-Post-Feld aus Deinem Content Type nehmen
    • fbpublication:field-facebook-link – hier gehört die node:url hin.
    • fbpublication:field-facebook-picture – hier könntest Du z.B. das Bild Deines Content Types verlinken, falls vorhanden.
    • fbpublication:field-facebook-name – hier passt am besten der Titel Deines Beitrags, d.h. node:title.
    • fbpublication:field-facebook-description – hier könntest Du den Intro oder Teaser Text Deines Beitrags auswählen.

5. Konfiguration testen und erweitern

Herzlichen Glückwunsch! Ab jetzt sollte es auf Deiner Website funktionieren, dass beim Erstellen bestimmter Beiträge direkt ausgewählt werden kann, ob diese – mit einem individuell eingegebenen Text – bei Facebook und Twitter gepostet werden. Selbstverständlich ist es jederzeit möglich, weitere Rules festzulegen. So könntest Du Rules schreiben, die bei Facebook und Twitter angeben, wie viele Nutzer sich schon auf Deiner Website registriert oder einen bestimmten Kurs belegt haben oder wenn ein bestimmter Kurs startet.

Gerne kann ich Dich bei Deiner spezifischen Konfiguration beraten und unterstützen. Nimm einfach Kontakt zu mir auf!

Lizenzhinweis

Dieser Inhalt ist offen und steht Dir damit zur Weiterverwendung frei zur Verfügung. Bitte gib dabei den folgenden Lizenzhinweis an:

Der Inhalt Facebook und Twitter Website-Integration mit Drupal aus dem eBildungslabor steht unter der Lizenz CC BY 4.0

Als HTML-Code zum Einbetten:

Der Inhalt <a href=http://www.ebildungslabor.de/blog/facebook-und-twitter-website-integration-mit-drupal>Facebook und Twitter Website-Integration mit Drupal</a> aus dem <a href=http://www.ebildungslabor>eBildungslabor</a> steht  unter der <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Lizenz CC BY 4.0</a>