Einrichten eines ActivityPub Actors

Dieses Thema behandelt die Einrichtung eines ActivityPub-Akteurs in Discourse mit dem Discourse ActivityPub-Plugin. Wenn Sie nicht sicher sind, was das bedeutet, lesen Sie zuerst das Thema Discourse ActivityPub Plugin.

Nächster Schritt

Anweisungen

So erstellen Sie einen ActivityPub-Akteur:

  1. Gehen Sie zu Admin > Plugins > ActivityPub.
  2. Klicken Sie auf “Akteur hinzufügen”.
  3. Füllen Sie das Formular “Akteur hinzufügen” aus (die Einstellungen werden unten erklärt).
  4. Klicken Sie auf “Akteur speichern”.

Wenn Sie den Akteur speichern, können andere Akteure im Fediverse beginnen, ihm zu folgen. Sie können einen Akteur deaktivieren, indem Sie den Schalter “Aktiviert” auf der rechten Seite der Ansicht “Akteur bearbeiten” umlegen.

Akteur-Einstellungen

Benutzername

Dies ist der erste Teil des ActivityPub-Handles des Akteurs, z. B. ist ankündigungen der Benutzername von ankündigungen@meta.discourse.org. Dies wird die Grundlage für den Benutzernamen des Akteurs auf entfernten Discourse-Instanzen sein (wenn der Benutzername auf dieser Instanz bereits vergeben ist, wird zur Eindeutigkeit eine Ganzzahl hinzugefügt).

:point_right: Diese Eigenschaft entspricht preferredUsername in der ActivityPub-Spezifikation.
:point_right: Derzeit kann dies nach der Festlegung nicht mehr geändert werden. Dies wird sich ändern, wenn oder sobald dieser PR für Mastodon zusammengeführt wird.

Name

Dies ist der Anzeigename des Akteurs. Wie er verwendet wird, hängt davon ab, wie andere Dienste ihn implementieren. In Discourse wird dies zum “Namen” des Akteursbenutzers.

Sichtbarkeit

Dies bestimmt, ob Aktivitäten, die vom Akteur veröffentlicht werden, “öffentlich adressiert” sind (Public Addressing). Sie sollten dies auf öffentlich belassen, es sei denn, Sie wissen, was Sie tun.

:point_right: Dies ist im Wesentlichen dasselbe wie der Unterschied zwischen “öffentlichen” und “privaten” (nur für Follower bestimmten) Beiträgen auf Mastodon.

Post-Objekttyp

Dies bestimmt, ob der Akteur Beiträge als Note oder Article veröffentlicht. Sie sollten dies auf Note belassen, es sei denn, Sie wissen, was Sie tun.

:point_right: Mastodon veröffentlicht nur einen Link zum Originalbeitrag, wenn es einen Article erhält.

Veröffentlichungstyp

Vollständiges Thema

Alle Beiträge in einem Thema, das dem Akteur zugeordnet ist, werden veröffentlicht und alle Antworten aus dem Fediverse werden in Beiträge umgewandelt.

Erster Beitrag

Nur der erste Beitrag in einem Thema, das dem Akteur zugeordnet ist, wird veröffentlicht und keine Antworten aus dem Fediverse werden in Beiträge umgewandelt.

3 „Gefällt mir“

Ich habe das Plugin gerade zu einer Discourse 3.3.2-Installation hinzugefügt. Ich kann das Plugin in der Liste der Plugins, den Plugin-Einstellungen usw. sehen.

Wenn ich jedoch versuche, Akteure hinzuzufügen, kann ich nur Akteure für Tags (die ich nicht benötige) hinzufügen, aber nicht für Kategorien. Es scheint sich um ein UI/Browser-seitiges JavaScript-Problem zu handeln (ich bin kein Webentwickler).

Ich habe es sowohl mit Firefox als auch mit Chromium unter Debian versucht, und beide zeigen das gleiche Verhalten:

  • Das Hinzufügen von Akteuren für Tags funktioniert wie erwartet.
  • Das Hinzufügen von Akteuren für Kategorien ist unmöglich, da rechts von der Auswahl Select a model / Category niemals eine Auswahlliste für die Kategorien gerendert wird.

Ich erhalte einen

runtime.js:912 Uncaught TypeError: Cannot read properties of null (reading 'firstNode')
    at ue.firstNode (runtime.js:912:1)
    at T (runtime.js:241:1)
    at ue.reset (runtime.js:983:1)
    at ae.resume (runtime.js:686:1)
    at Ut.handleException (runtime.js:4309:1)
    at Vt.handleException (runtime.js:4521:1)
    at Dt.throw (runtime.js:4260:1)
    at $e.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4247:1)
    at Dt.execute (runtime.js:4232:1)
    at qt.rerender (runtime.js:4547:1)
    at hr.render (index.js:4674:1)
    at index.js:4934:1
    at Nt (runtime.js:4080:1)
    at gr._renderRoots (index.js:4916:1)
    at gr._renderRootsTransaction (index.js:4960:1)
    at gr._revalidate (index.js:4992:1)
    at invoke (backburner.js.js:280:1)
    at h.flush (backburner.js.js:197:1)
    at p.flush (backburner.js.js:358:1)
    at B._end (backburner.js.js:798:1)
    at B.end (backburner.js.js:589:1)
    at B._run (backburner.js.js:842:1)
    at B._join (backburner.js.js:819:1)
    at B.join (backburner.js.js:629:1)
    at l (index.js:81:1)
    at u.onHover (index.js:118:1)
    at e.handleMouseEnter (select-kit-row.js:83:22)

Fehler in der Entwicklerkonsole, wenn “Category” aus dem Button “Select a Model” ausgewählt wird.

Im Allgemeinen wird der Support nur auf Meta für die neuesten stabilen oder Tests-bestandenen Versionen bereitgestellt – gibt es einen Grund, warum Sie hinterherhinken? Es lohnt sich, auf die neueste Version zu aktualisieren und es erneut zu versuchen.

Es war ein Tippfehler, Entschuldigung. Ich bin auf 3.3.2.

1 „Gefällt mir“

Hallo @LaF0rge, dieses Plugin unterstützt derzeit nur die neueste Version von Discourse. Weitere Informationen finden Sie hier:

1 „Gefällt mir“

Hallo @angus - danke für deine Antwort. Leider bin ich nicht bereit, unsere Produktionsinstallation auf eine Beta-Version oder den aktuellen Git-Master zu aktualisieren. Ich werde wohl warten, bis eine neue stabile Version von Discourse markiert/veröffentlicht wurde.

Übrigens: Gibt es strukturierte Informationen, die die Mindestversionsanforderung eines Plugins angeben? Ich habe sie hier im Eröffnungsposting des Threads nicht gesehen, und auch nicht auf GitHub - discourse/discourse-activity-pub: Adds ActivityPub support to Discourse.

Bei anderen Softwareprojekten/-produkten geben Plugins normalerweise die Versionskompatibilität an.

Da das Plugin seit über einem Jahr existiert, wäre eine andere Option, auf eine frühere Version des Plugins zurückzugreifen, etwa aus der Zeit, als 3.3.2 aktuell war? Im Commit-Log konnte ich jedoch keine direkten Verweise auf Discourse-Versionen finden.

Sofern Sie keinen spezifischen Grund haben, dies nicht zu tun, wird empfohlen, den tests-passed-Branch von Discourse zu verwenden. Weitere Informationen finden Sie hier:

Darüber hinaus können Sie davon ausgehen, dass Plugins oder Anpassungen mit dem Tag experimental (wie das ActivityPub-Plugin) nur zuverlässig mit der neuesten Version von Discourse funktionieren.

Genauer gesagt, zu Ihren impliziten Fragen zur Versionsverwaltung: In Discourse-Plugins wird dies über die Datei .discourse-compatibility gehandhabt, über die Sie hier lesen können:

Sehen Sie sich hier die Kompatibilitätsdatei des ActivityPub-Plugins an:

Da das ActivityPub-Plugin noch experimental ist, war die Sicherstellung der Abwärtskompatibilität kein Schwerpunkt. Dennoch werde ich Anfang nächster Woche untersuchen, ob explizite 3.3.2-Unterstützung zu dieser Datei hinzugefügt werden kann.

Aber wie oben erwähnt, schlage ich vor, tests-passed zu verwenden, es sei denn, Sie haben einen guten Grund, dies nicht zu tun.

3 „Gefällt mir“

@LaF0rge Ich habe mir das gerade angesehen.

Das Plugin muss keine explizite 3.3.2-Unterstützung hinzufügen, da es diese bereits in der Kompatibilitätsdatei hat.

< 3.4.0.beta1-dev: 3a6512d0560211b93f022a27ed7276024d0020dc

Wenn Sie eine Standardinstallation von Discourse unter 3.3.2 verwenden, befinden Sie sich automatisch auf dem Commit 3a6512d0560211b93f022a27ed7276024d0020dc des Plugins, für das das Dropdown-Menü für Kategorien funktioniert. Weitere Informationen finden Sie hier:

Vielen Dank für Ihre zusätzlichen Eingaben. Ich habe heute Morgen einen weiteren Versuch unternommen, das Plugin-Commit 3a6512d0560211b93f022a27ed7276024d0020dc mit meinem inzwischen aktualisierten Discourse 3.3.3 zu verwenden, aber ich landete in einem Zustand, in dem alle HTTP-Anfragen mit Completed 500 Internal Server Error in 42ms (ActiveRecord: 0.0ms | Allocations: 16860) beantwortet wurden, egal für welche URL. Es gab nichts in der production.log, nichts fehlerhaftes im Standard-Output/Error und auch nichts in der passenger.3000.log. Das Entfernen des Plugins aus dem Plugin-Verzeichnis und ein Neustart haben das Problem behoben. Es war mehrmals reproduzierbar.

Vorerst gebe ich auf. Es war eine schöne Idee, mit der ActivityPub-Integration zu spielen, aber ich schätze, sie ist nicht auf dem Niveau, auf dem ich sie nützlich machen kann, im Gegensatz zu anderen Plugins, die ich erfolgreich installieren konnte. Schließlich ist es keine kritische Anforderung, nur ein “nice to have”.

Wenn Sie versuchen, bestimmte Commits eines Plugins manuell mit bestimmten Versionen von Discourse abzugleichen, wird dies wahrscheinlich nicht gut ausgehen. Ich möchte Sie dringend bitten, die Standardinstallation von Discourse in Betracht zu ziehen. Sie reduzieren Ihren Aufwand und können dieses und andere Plugins problemlos nutzen.

Ich verstehe Sie – aber ich werde nicht davon abweichen, getaggte/veröffentlichte Versionen von Software zu installieren und zu betreiben. Für Discourse ist das nach meinem Dafürhalten zu diesem Zeitpunkt 3.3.3.

Ich finde es äußerst unbequem und beunruhigend, Produktionssysteme mit allem außer getaggten Versionen zu betreiben. Nennen Sie mich altmodisch, aber ich betreibe (und entwickle) IT-Systeme seit Mitte der 1990er Jahre erfolgreich.

Ich respektiere, dass Sie und/oder die offizielle Discourse-Entwickler-Community eine andere Einstellung/Herangehensweise haben. Wir sind uns uneinig. Trotzdem vielen Dank für Ihre bisherige Hilfe!

1 „Gefällt mir“