Einsatz des ActivityPub-Plugins

Wir haben heute das Discourse ActivityPub Plugin im metadaten.community-Forum aktiviert. Hier können wir nun gemeinsam überlegen, wie wir das Plugin für unsere Zwecke nutzen wollen.

ActivityPub – das meistgenutzte Protokoll für dezentrale Soziale Medien

ActivityPub ist ein Protokoll für dezentrale Soziale Medien und ein zentraler Baustein für das Fediverse. Das Fediverse setzt sich aus allen Servern (sogenannten „Instanzen“) zusammen, die Mastodon, Pixelfed, Lemmy oder eine andere Software betreiben, die einen Austausch mit anderen Fediverse-Servern erlaubt. Dieses Schaubild von Imke Senst und Mike Kuketz gibt einen guten und recht aktuellen Überblick über die Auswahl an Fediverse-Diensten (die wie mensch sieht fast alle ActivityPub „sprechen“):

Discourse und ActivityPub

Wir benutzen für dieses Forum die Software Discourse, die – obwohl sie in dem Schaubild (noch) nicht auftaucht – auch ActivityPub spricht, sobald das Discourse ActivityPub Plugin installiert und entsprechend konfiguriert ist.

Hier gab es bereits in #vBIB23 metadaten.community – ein Forum für Metadatenpraktiker:innen - #3 von acka47 sowie neuerdings in 6. metadaten.community-Stunde - #3 von acka47 und auf Mastodon Überlegungen/Anfragen, das genannte Plugin in diesem Forum zu nutzen. @phu hat es nun installiert und wir können gemeinsam anfangen, es zu testen.

Kategorien und Tags als ActivityPub Actor

Grundlegend ermöglicht uns das ActivityPub-Plugin jede Kategorie und jedes Tag zu einem ActivityPub-Actor zu machen.

Das ist erst einmal sehr technische Terminologie (die daher kommt, dass ActivityPub das Actor Model umsetzt). Was heißt das konkret? Und was ergeben sich daraus für Möglichkeiten?

Um das an einem Beispiel zu erläutern und für alle zum Austesten habe ich einmal die Kategorie Meta zu einem ActivityPub Actor gemacht. Das erkennt mensch daran, dass jetzt auf der Kategorienseite ein „Federation“-Button erscheint:

Konfiguriert ist die Kategorie derzeit so, dass „Full Topic“ föderiert wird, d.h. es wird nicht nur jeweils der Originalbeitrag eines Themas an die Follower gesendet, sondern auch jeder Antwort-Beitrag. In der Admin-Oberfläche sieht das so aus:

Tags und Kategorien im Fediverse folgen

Sobald ein Tag oder eine Kategorie ActivityPub-Actor ist, können wir dem Tag/der Kategorie im Fediverse folgen. Zum Beispiel bin ich gerade der Meta-Kategorie mit meinem Mastodon-Konto gefolgt:

  • Dafür drücke ich erst den „Federation“-Button der entsprechenden Kategorie
  • und kopiere dann den ActivityPub-Nutzernamen – hier: meta@metadaten.community – aus der Oberfläche, indem ich auf den Kopier-Button drücke:
  • Sodann wechsel ich in meinen Mastodon-Client und füge den Namen im Suchfeld ein (den Tippfehler im Account-Namen habe ich übrigesn bereits korrigiert):
  • Voilà, die Kategorie wird nun gefunden und ich klicke auf „Folgen“.
  • Entsprechend aktualisiert sich die Follower-Liste der Kategorie hier im Forum:

Sobald ich diesen Post publiziere, wird er in meinem Mastodon-Feed auftauchen, was (in Phanpy mit dunklem Theme) so aussieht:

Kategorien/Tags auf Kategorien oder Tags in anderen Discourse-Foren spiegeln

Das ActivityPub-Plugin bietet auch tolle Möglichkeiten zur Spiegelung von Themen und ganzer Diskussionsstränge über zwei Foren hinweg.

In der letzen metadaten.community-Stunde hat @Tracy_Arndt darauf hingewiesen, dass im openCode-Forum, das ebenfalls mit Discourse läuft, teilweise Themen diskutiert werden, für die es in unserem Forum einige Expert:innen gibt, z.B. zur Konvertierung von METS/MODS nach DCAT.

Für diese überlappenden Themen ließen sich nun Mechanismen einrichten, dass sie forenübergreifend diskutiert werden können. Dafür müssten die openCode-Kolleg:innen auf jeden Fall auch das ActivityPub-Plugin installieren. Eine Möglichkeit der Umsetzung wäre dann:

  1. Die openCode-Kolleg:innen ergänzen ein Tag „metadaten“ und machen es zum ActivityPub Actor.
  2. Wir richten eine Kategorie „Verwaltungsmetadaten“ ein und machen sie ebenfalls zum ActivityPub Actor, der wiederum dem „metadaten“-Tag bei OpenCode folgt.
  3. Darauf würde automatisch jedes bei openCode mit „metadaten“-getaggte Thema in unserer Kategorie „Verwaltungsmetadaten“ erscheinen. Wir könnten drauf antworten und die Antwort würde genauso auch bei openCode erscheinen. Weitere Posts am Thema im openCode-Forum würden genauso bei uns angezeigt werden.

Das nur als ein Beispiel, es wird wahrscheinlich nicht die beste Lösung sein, weshalb wir konkrete Umsetzungen gerne hier diskutieren können und sollten. Feedback und Ideen sind willkommen!

1 Like

Offenbar findet die Publikation/Föderation über ActivityPub mit fünf Minuten Zeitverzögerung statt:

Cool, es werden auch meine Bearbeitungen des Beitrags föderiert, so dass ich die Edit-Historie in meinem Mastodon-Client nachvollziehen kann.

Was nicht angezeigt wird:

  • Der Titel (dafür gibt es keine Entsprechung bei Mastodon)
  • Die eingebetteten Bilder

Ansonsten wird aber der gesamte Beitrag geschickt. Das lässt sich auch auf einen kleinen Ausschnitt reduzieren, indem das Markup [note]...[/note] um den zu föderierenden Text ergänzt wird.

Test-Antwort via Mastodon: Das taucht doch dann im Forum auf, oder nicht?

1 Like

Ich bin sehr begeistert von dem Status des Plugins. Die neuesten Erkenntnisse:

  • Änderungen auf Mastodon kommen auch hier an, siehe meinen Beispiel-Beitrag eins drüber.

Jeder Beitrag hat außerdem ein kleines ActivityPub-Symbol:

  • grafik Das grüne ActivityPub-Logo bei Beiträgen in diesem Forum zeigt an, dass der Post über ActivityPub an die Follower gesendet wurde. (Wenn noch nicht gesendet ist es glaube ich rot.)
  • grafik Das blaue ActivityPub-Symbol zeigt an, dass der Beitrag von außerhalb des Forums als Antwort gepostet wurde.

@acka47 Man kann wohl nicht das ganze Forum als Actor konfigurieren, oder? Nur eine Kategorie oder ein Tag.

Ja, genau.

Der Originalbeitrag wurde zu diesem Zeitpunkt im Fediverse siebenmal geboostet und zweimal gelikt:

Diese Interaktionen werden hier im Forum aber nirgends angezeigt oder übersehe ich etwas?

@acka47 vielen Dank dafür, auch für die umfangreiche Erklärung! Am Anfang ist das allerdings etwas viel. Mit konkreten Beispielen wird es sicher Schritt-für-Schritt klarer und schließlich ganz normal werden.

1 Like

Ich sehe auch keine Likes. Interaktionen werden laut ActivityPub Plugin - #392 von Jagster - Plugin - Discourse Meta weder von Mastodon zu Discourse noch umgekehrt übertragen.

1 Like

Großartig!

Seit ihr irgendwo darauf gestoßen, welche Informationen der Nutzenden übertragen werden? Nur Nutzername? Oder noch irgendetwas anderes?
Ich konnte auf den ersten Blick nichts dazu finden…

@acka47 witzig auf jeden Fall 👍

In welche Richtung? Auf jeden Fall werden diese drei Dinge übertragen:

  • ActivityPub-Handle oder URI
  • Angezeigter Name
  • Profilbild

Ein Screenshot der Angaben zum Discourse User, der aufgrund meiner Toot-Anwort in diesem Thread angelegt wurde:

Übrigens gibt es unter https://metadaten.community/u/{user-name}/preferences/activity-pub wohl theoretisch auch die Möglichkeit, seinen Discourse User mit einem Mastodon-Konto zu assoziieren, so dass die in Discourse als ein User dargestellt werden:

Das hat aber bei mir gerade nicht geklappt. Schau ich mir beizeiten nochmal an.

Die Frage kam in Bezug auf das OpenCode Forum auf. Dort werden Nutzende bei der Anmeldung verifiziert. Manche nutzerbezogenen Daten sollten dann eventuell nicht deren Discourse Forum verlassen.

Die generierte E-Mail vom Mastodonaccount sieht ja wild aus…

Ich war jetzt erfolgreich. In das Feld muss die Domain der Mastodon-Instanz – also bei mir https://openbiblio.social – eingetragen werden und dann konnte ich mich mit dem „Genehmigen“-Button authorisieren:

Jetzt wird mein Post von oben, den ich über Mastodon abgeschickt hatte auch als Beitrag meines Discourse-Users angezeigt.

Wenn jetzt in https://discourse.opencode.de ebenfalls das ActivityPub-Plugin installiert wäre, könnte ich auch mein Konto dort verknüpfen.

Ich schaff es nicht - egal, ob ich das Handle oder die Domain angebe, ob ins Discourse oder Mastodon Feld - wird immer quittiert mit Ein Fehler ist aufgetreten: Du hast bei der Anfrage ungültige Parameter angegeben: Discourse::InvalidParameters nach Klicken auf Verify.

Bei mir geht es auch nicht. Nachdem ich openbiblio.social eingetragen und auf Verify und Genehmigen geklickt habe, lande ich bei openbiblio.social mit der folgenden Fehlermeldung

Aha: ohne Protokoll-Präfix(https://) hat es bei mir auch geklappt. Und bekomme nun auch @phu `s Fehlermeldung .

Ich habe es gerade nochmal in einem anderen Discourse-Forum mit aktiviertem ActivityPub-Plugin (https://socialhub.activitypub.rocks) getestet und da ging es auch – sowohl die Verknüpfung mit openbiblio.social als auch die der beiden Discourse-Konten: