Skip to content
Importiert Feeds aus Quellen wie Facebook, Instagram, Twitter, Vimeo oder RSS (ehemals YFeed)
Branch: master
Clone or download
Latest commit 75a4f17 Jun 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lang rename yFeed -> Feeds (#99) May 29, 2019
lib erstmal wieder auf 100 gesetzt Jun 7, 2019
pages Autoren geändert Jun 2, 2019
.gitignore Update .gitignore Jun 2, 2019
.travis.yml Create .travis.yml Jun 2, 2019
CHANGELOG.md 2.0.1 Jun 13, 2019
LICENSE.md added LICENSE May 22, 2019
README.md Update README.md Jun 7, 2019
boot.php Autoren geändert Jun 2, 2019
composer.json rename yFeed -> Feeds (#99) May 29, 2019
composer.lock rename yFeed -> Feeds (#99) May 29, 2019
install.php ensureForeignKey key umbenannt Jun 13, 2019
package.yml Update package.yml Jun 13, 2019
uninstall.sql rename yFeed -> Feeds (#99) May 29, 2019
update.php Autoren geändert Jun 2, 2019

README.md

Feeds

Ein REDAXO5-AddOn zum Abruf externer Streams, vormals YFeed.

Allgemein

Features

  • Abruf von Facebook-, Twitter-, YouTube-, Vimeo- und RSS-Streams.
  • Dauerhaftes Speichern der Beiträge in einer Datenbank-Tabelle
  • Nachträgliche Aktualisierung der Beiträge (z.B. nach einem Update / einer Korrektur)
  • Erweiterung um eigene Feed-Typen möglich, z.B. Google My Business o.a.
  • Feeds können in Watson gesucht werden feed suchbegriff

Installation

  1. Im REDAXO-Backend unter Installer abrufen und
  2. anschließend unter Hauptmenü > AddOns installieren.

YFeed-Migration

  • Es sollte YFeed 1.3.0 installiert, sein damit eine Migration erfolgen kann. YFeed ggf. daher vorab aktualisieren.
  • Feeds importiert die Tabellen und Konfiguration von YFeed während der Installation.
  • Die neu angelegten Tabellen lauten jetzt: TABLEPREFIX_feeds_item und TABLEPREFIX_feeds_stream, der Abruf in Modulen, AddOns oder Classes muss daher angepasst werden.
  • Der Aufruf der Bilder mit der Endung .yfeed wird weiterhin unterstützt.

Lizenz

AddOn, siehe LICENSE

Vendoren, siehe Vendors-Ordner des AddOns

Autoren

Verwendung

Einen neuen Feed einrichten

  1. Im REDAXO-Backend AddOns > Feeds aufrufen,
  2. dort auf das +-Symbol klicken,
  3. den Anweisungen der Stream-Einstellungen folgen und
  4. anschließend speichern.

Hinweis: Ggf. müssen zusätzlich in den Einstellungen von Feeds Zugangsdaten (bspw. API-Schlüssel) hinterlegt werden, bspw. bei Facebook, Twitter oder YouTube.

Feed aktualisieren

Die Feeds können manuell unter AddOns > Feeds abgerufen werden, oder in regelmäßigen Intervallen über einen Cronjob abgerufen werden:

  1. Im REDAXO-Backend unter AddOns > Cronjob aufrufen,
  2. dort auf das +-Symbol klicken,
  3. als Umgebung z.B. Frontend auswählen,
  4. als Typ Feeds: Feeds abrufen auswählen,
  5. den Zeitpunkt festlegen (bspw. täglich, stündlich, ...) und
  6. mit Speichern bestätigen.

Jetzt werden Feeds-Streams regelmäßig dann abgerufen, wenn die Website aufgerufen wird. Weitere Infos zu REDAXO-Cronjobs.

Feed ausgeben

Um ein Feed auszugeben, können die Inhalte in einem Modul oder Template per SQL oder mit nachfolgender Methode abgerufen werden, z.B.:

$stream_id = 1;
$media_manager_type = 'my_mediatype';
$stream = rex_feeds_stream::get($stream_id);
$items = $stream->getPreloadedItems(); // Standard gibt 5 Einträge zurück, sonst gewünschte Anzahl übergeben
    foreach($items as $item) {
		print '<a href="'. $item->getUrl() .'" title="'. $stream->getTitle() .'">';
        print '<img src="index.php?rex_media_type='. $media_manager_type .'&rex_media_file='. $item->getId() .'.feeds"  alt="'. $item->getTitle() .'" title="'. $item->getTitle() .'">'; 
        print '</a>';
    }

Bilder ausgeben

Damit Bilder in der Form /index.php?rex_media_type=media_type&rex_media_file=421.feed ausgegeben werden können, muss das Bild über den Media-Manager-Effekt von Feeds eingelesen werden. Diesen sollte man direkt am Anfang vor allen anderen Effekten setzen.

Feeds erweitern

Um Feeds zu erweitern, kann man sich die Logik der von Haus aus mitgelieferten Feeds ansehen - hier am Beispiel "Twitter":

  • In /redaxo/src/addons/feeds/pages/settings.twitter.php wird die Einstellungsseite für das Hinterlegen von API-Keys u.a. Zugangsdaten für Twitter hinterlegt.

  • In /redaxo/src/addons/feeds/lib/stream/twitter_user_timeline.php wird die Logik für den Import der Tweets eines Users hinterlegt.

Diese lassen sich kopieren und bspw. im project-Addon anpassen. In der boot.php des Projekt-Addons hinzufügen: rex_feeds_stream::addStream("rex_Feeds_stream_meine_klasse";. Zum Einhängen der Einstellungsseite in Feeds muss dann in der package.yml die Einstellungsseite registriert werden.

Facebook

Wann brauche ich ein Access Token für Facebook?

Stand 2017: Bei Facebook Pages wird kein Access-Token benötigt, falls nur die öffentlich einsehbaren Einträge eingelesen werden sollen. Für Einräge mit eingeschränkter Sichtbarkeit wird ein User-Access Token oder Page-Access Token benötigt. Für Facebook User-Feeds wird ein User-Access-Token mit der Berechtigung user_posts benötigt.

Stand 2019: Ist der Nutzer, der den Access-Token generiert, Administrator der Facebook-Seite, so ist kein zusätzlicher Freigabe-Prozess der Facebook-App erforderlich.

Wie erzeuge ich ein langlebigen Access-Token für Facebook?

Basierend auf diesem Eintrag von Stackoverflow: Long-lasting FB access-token for server to pull FB page info

  1. Auf developers.facebook.com einloggen und Facebook-App erzeugen, den Anweisungen folgen.
  2. Wichtig: Die App soll sich nicht im Live-Modus, sondern noch im Entwickler-Modus befinden, sonst schlagen die nachfolgenden Aktionen fehl.
  3. Den Graph API Explorer aufrufen. Dort oben rechts jene App auswählen, die für Feeds verwendet werden soll.
  4. Das Auswahlfeld "Zugangsschlüssel anfordern" anklicken und darin entweder
    A) "Seitenzugriffs-Schlüssel anfordern" wählen und den Anweisungen folgen oder
    B) Bei bereits bestehender Zugriffsberechtigung die gewünschte Facebook-Page auswählen.
  5. Im Feld "Zugriffsschlüssel" befindet sich ein kurzlebiger Zugangsschlüssel (hier: access_token1), der nach ca. 1 Stunde ungültig wird. Diesen in folgenden Link einsetzen, zusammen mit den App-Zugangsdaten:
    https://graph.facebook.com/oauth/access_token?client_id=[[[App ID]]]&client_secret=[[[App secret]]]&grant_type=fb_exchange_token&fb_exchange_token=[[[access_token1]]] und aufrufen.
    Der durch den Link erzeugten neuen langlebigen Zugriffsschlüssel (hier: access_token2) ist ca. 2 Monate gültig.
  6. Diesen Code erneut kopieren und in diesen Link einfügen:
    https://graph.facebook.com/me/accounts?access_token=[[[access_token2]]]
  7. Gibt es hier keine Fehlermeldung, kann der nun generierte, neue "unsterbliche" Zugangsschlüssel kann dann in den Einstellungen für den Facebook-Stream eingesetzt werden. Er wird nur noch dann ungültig, wenn bspw. das Passwort des Facebook-Accounts geändert wird, Admin-Rechte für die Facebook-Page entzogen werden oder die App gelöscht wird.

Tipps:

Jeder Token kann auf der Facebook Developer Debug-Seite überprüft werden, welche Gültigkeitsdauer vorhanden ist.

Hier löst man Tokens aus und Berechtigungen setzen

https://developers.facebook.com/tools/accesstoken

Hier sieht man, ob man einen langlebigen API-Schlüssel hat und kann ihn sich von dort kopieren

https://developers.facebook.com/tools/explorer/?classic=0

You can’t perform that action at this time.