ActivityPub

Beschreibung

Steig mit ActivityPub ins Fediverse ein und erreiche mit deinem Blog ein größeres Publikum. Gewinne Follower, verteile Updates und sammle Kommentare aus der diversen Nutzerschaft von ActivityPub-kompatiblen Plattformen.

Mit installiertem ActivityPub-Plugin funktioniert dein WordPress-Blog selbst als föderiertes Profil, dazu kommen Profile für jeden Autor. Wenn deine Website beispielsweise example.com ist, dann findet man das blogweite Profil unter @example.com@example.com. Autoren wie Jane und Bob wiederum hätten ihre individuellen Profile jeweils unter @jane@example.com und @bobz@example.com.

Ein Beispiel: Ich gebe dir meinen Mastodon-Profilnamen @pfefferle@mastodon.social. Du suchst danach, findest mein Profil und klickst auf „Folgen“. Jetzt erscheint jeder Beitrag von mir auf deiner Startseite. Auf die gleiche Weise kannst du mit dem ActivityPub-Plugin Janes Profil bei @jane@example.com finden und folgen.

Sobald du Janes Profil @jane@example.com folgst, landet jeder Beitrag, den sie auf example.com erstellt, auf deiner Startseite. Und wenn du dem blogweiten Profil @example.com@example.com folgst, erhältst du Updates von allen Autoren.

Hinweis: Wenn deinem Autor oder Blog niemand folgt, bleiben deine Beiträge unsichtbar. Ob das Plugin funktioniert, findest du am leichtesten heraus, indem du deinem eigenen Profil folgst. Wenn du bereits ein Mastodon-Profil hast, beginne, indem du deinem neuen folgst.

Das Plugin funktioniert mit den folgenden getesteten föderierten Plattformen, es könnte aber noch mehr geben, mit denen es ebenfalls klappt:

Einige Dinge solltest du beachten:

  1. Das blogweite Profil funktioniert nur für Websites mit aktivierten Umschreibungsregeln. Wenn deine Website Umschreibungsregeln nicht aktiviert hat, könnten die autorenspezifischen Profile trotzdem funktionieren.
  2. Viele Einzelautoren-Blogs haben ihre Autoren-Profilseiten deaktiviert oder über ein SEO-Plugin wie Yoast oder Rank Math umgeleitet. Das geschieht normalerweise, um Duplicate Content mit der Homepage des Blogs zu vermeiden. Wenn deine Autorenseite auf diese Weise deaktiviert wurde, dann funktionieren die Autorenprofile von ActivityPub bei dir nicht. Stattdessen kannst du die Autorenprofilseite wieder einschalten und im SEO-Plugin die Option wählen, die Autorenseite nicht zu indexieren. Das löst Duplicate-Content-Probleme mit Suchmaschinen und ermöglicht, dass die Autorenprofile von ActivityPub funktionieren.
  3. Sobald ActivityPub installiert ist, sind nur ab dann neu veröffentlichte Beiträge im Fediverse verfügbar. Und auch wenn du ActivityPub schon länger einsetzt, sieht, wer dir neu folgt, nur die Beiträge, die du von diesem Zeitpunkt an neu publizierst. Früher geschriebene Beiträge sieht er niemals auf der Startseite. Das funktioniert ganz ähnlich wie beim Abonnieren eines Newsletters. Wenn du einen Newsletter bestellst, bekommst du nur künftige E-Mails, aber nicht die alten archivierten. Folgt jemand deiner Website mit ActivityPub, so empfängt er nur die neuen Beiträge, die du ab dann veröffentlichst.

Wie also läuft das ab?

  1. Installiere das ActivityPub-Plugin.
  2. Geh zu den Einstellungen des Plugins und passe diese nach Belieben an. Wenn du fertig bist, klicke auf den Speichern-Button.
  3. Stelle sicher, dass die Autoren-Profilseite deines Blogs aktiv ist, wenn du Autoren-Profile verwendest.
  4. Besuche Mastodon oder jede andere föderierte Plattform, suche nach deinem Profil und folge diesem. Dein neues Profil sieht entweder aus wie @your_username@example.com oder wie @example.com@example.com, danach solltest du also suchen.
  5. Veröffentliche einen neuen Beitrag in deinem Blog.
  6. Prüfe in Mastodon, ob der neue Beitrag auf deiner Startseite erscheint.

Beachte bitte, dass es bis zu rund 15 Minuten dauern kann, bis der neue Beitrag in deinem föderierten Feed erscheint. Das liegt daran, dass die Nachrichten über einen verzögerten cron an die föderierten Plattformen gesendet werden. Das soll verhindern, dass das Veröffentlichen für Benutzer mit einer Menge Follower unterbrochen wird. Es ist also kein Grund zur Sorge, wenn er nicht unmittelbar auftaucht. Lass ihm etwas Zeit. In den meisten Fällen wird er binnen weniger Minuten erscheinen. Dann weißt du, dass alles wie erwartet funktioniert.

Blöcke

Dieses Plugin unterstützt 2 Blöcke.

  • Fediverse Followers Display your followers from the Fediverse on your website.
  • Follow me on the Fediverse Display your Fediverse profile so that visitors can follow you.

Installation

Folge den normalen Anweisungen für die WordPress-Plugin-Installation.

Automatische Plugin-Installation

So fügst du ein WordPress-Plug-in mit dem integrierten Plugin-Installer hinzu:

  1. Gehe zu Plugins > Installieren.
  2. Gib „activitypub“ in die Box Suche Plugins ein.
  3. Suche das WordPress-Plugin, das installiert werden soll.
    1. Klicke auf Details für weitere Informationen zum Plugin und Anleitungen, die du für die Einrichtung des Plugins vielleicht drucken oder speichern möchtest.
    2. Um das WordPress-Plugin zu installieren, klicke auf Jetzt installieren.
  4. Der resultierende Installationsbildschirm zeigt die Installation als erfolgreich an oder weist auf Probleme während der Installation hin.
  5. Falls erfolgreich, klicke Plugin aktivieren, um es zu aktivieren, oder Zum Plugin-Installer zurückkehren für weitere Aktionen.

Manuelle Plugin-Installation

Es gibt einige wenige Fälle, in denen die manuelle Installation eines WordPress-Plugins angebracht ist.

  • Wenn du den Speicherort und den Installationsprozess eines WordPress-Plugins kontrollieren möchtest.
  • Falls dein Server keine automatische Installation eines WordPress-Plugins erlaubt.
  • Wenn du die neueste Entwicklungsversion ausprobieren möchtest.

Die manuelle Installation eines WordPress-Plugins setzt FTP-Kenntnisse sowie das Bewusstsein voraus, dass du deine Website aufs Spiel setzen könntest, wenn du ein WordPress-Plugin installierst, dass mit der aktuellen Version nicht kompatibel ist oder aus einer unzuverlässigen Quelle stammt.

Sichere deine Website komplett, bevor du weitermachst.

Um ein WordPress-Plugin von Hand zu installieren:

  • Download your WordPress Plugin to your desktop.
  • Falls du es als Zip-Archiv herunterlagen hast, entpacke den Plugin-Ordner auf deinem Desktop.
  • Lade den Plugin-Ordner mit deinem FTP-Programm in den Ordner wp-content/plugins in deinem WordPress-Verzeichnis hoch.
  • Geh zum Plugins-Bildschirm und such das neu hochgeladene Plugin in der Liste.
  • Klicke Aktivieren, um es zu aktivieren.

FAQ

tl;dr

Dieses Plugin verbindet dein WordPress-Blog mit beliebten sozialen Plattformen wie Mastodon und macht es damit einem größeren Publikum zugänglich. Einmal installiert, können dir Benutzer auf diesen Plattformen folgen, wodurch deine neuen Beiträge in ihren Feeds erscheinen.

Wie ist der Status dieses Plugins?

Bereits Implementiert:

  • Blog-Profilseiten (JSON-Darstellung)
  • Autoren-Profilseiten (JSON-Darstellung)
  • individuelle Links
  • funktionaler Posteingang/-ausgang
  • folgen (Folgen annehmen)
  • Beiträge teilen
  • Kommentare/Reaktionen erhalten
  • Signaturprüfung
  • Unterstützung für verschachtelte Kommentare

Noch zu implementieren:

  • Shortcodes durch Layout-Blöcke ersetzt

Was ist „ActivityPub für WordPress“

ActivityPub for WordPress erweitert WordPress um einige Fediverse-Funktionen, konkurriert aber nicht mit Plattformen wie Friendica oder Mastodon. Wenn du ein dezentrales Social Network betreiben möchtest, verwende bitte Mastodon oder GNU social.

Was, wenn dein Blog in einem Unterverzeichnis deines Webservers liegt?

Damit webfinger funktioniert, muss es auf das Stammverzeichnis der URL abgebildet werden, auf der sich Dein Blog befindet.

Apache

Füge folgendes zur .htaccess-Datei im Hauptverzeichnis hinzu:

RedirectMatch "^\/\.well-known/(webfinger|nodeinfo|x-nodeinfo2)(.*)$" /blog/.well-known/$1$2

Wobei ‚blog‘ der Pfad zu dem Unterverzeichnis ist, in dem sich Dein Blog befindet.

Nginx

Füge der site.conf in sites-available Folgendes hinzu:

location ~* /.well-known {
    allow all;
    try_files $uri $uri/ /blog/?$args;
}

Wobei ‚blog‘ der Pfad zu dem Unterverzeichnis ist, in dem sich Dein Blog befindet.

Was, wenn du dein Blog in einem Unterverzeichnis betreibst, aber eine andere [wp_siteurl](https://wordpress.org/documentation/article/giving-wordpress-its-own-directory/) hast?

In diesem Fall benötigst du den Redirect nicht, weil sich die index.php darum kümmert.

Konstanten

Das Plugin verwendet PHP-Konstanten, um sein Standardverhalten ein- und auszuschalten oder zu ändern. Benutze diese bitte vorsichtig und nur, wenn du weißt, was du tust.

  • ACTIVITYPUB_REST_NAMESPACE – Standard-Namensraum des REST-Endpunkts ändern. Standard: activitypub/1.0.
  • ACTIVITYPUB_EXCERPT_LENGTH – Länge des Textauszugs ändern. Standard: 400.
  • ACTIVITYPUB_SHOW_PLUGIN_RECOMMENDATIONS – Plugin-Empfehlungen in den ActivityPub-Einstellungen anzeigen. Standard: true.
  • ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS – Anzahl zu föderierender Anhänge ändern. Standard: 3.
  • ACTIVITYPUB_HASHTAGS_REGEXP – Standard-Regex zur Erkennung von Hashtext in Text ändern. Standard: (?:(?<=\s)|(?<=<p>)|(?<=<br>)|^)#([A-Za-z0-9_]+)(?:(?=\s|[[:punct:]]|$)).
  • ACTIVITYPUB_USERNAME_REGEXP – Standard-Regex zur Erkennung von @-Replies in Text ändern. Standard: (?:([A-Za-z0-9\._-]+)@((?:[A-Za-z0-9_-]+\.)+[A-Za-z]+)).
  • ACTIVITYPUB_CUSTOM_POST_CONTENT – Standard-Template für Activities ändern. Standard: <strong>[ap_title]</strong>\n\n[ap_content]\n\n[ap_hashtags]\n\n[ap_shortlink].
  • ACTIVITYPUB_AUTHORIZED_FETCH – AUTHORIZED_FETCH aktivieren. Standard: false.
  • ACTIVITYPUB_DISABLE_REWRITES – Automatisches Anlegen von mod_rewrite-Regeln deaktiveren. Standard: false.
  • ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS – Eingehende Antworten/Kommentare/Likes blockieren. Standard: false.
  • ACTIVITYPUB_DISABLE_OUTGOING_INTERACTIONS – Ausgehende Antworten/Kommentare/Likes deaktivieren. Standard: false.
  • ACTIVITYPUB_SHARED_INBOX_FEATURE – Gemeinsame Inbox aktivieren. Standard: false.
  • ACTIVITYPUB_SEND_VARY_HEADER – Aktivieren, um den Header Vary: Accept zu senden. Standard: false.

Wo kannst du deine Follower verwalten?

Wenn du den Blog-Benutzer aktiviert hast, findest du die Liste seiner Follower in den Einstellungen unter /wp-admin/options-general.php?page=activitypub&tab=followers.

Die Follower eines Benutzers finden sich im Menü unter „Benutzer“ -> „Follower“ oder unter wp-admin/users.php?page=activitypub-followers-list.

Aus Datenschutzgründen ist es nicht möglich, die Follower anderer Benutzer zu sehen.

Rezensionen

19. Februar 2024
The next great social network is just the Web. This plugin is the most important feature in WordPress. It enables over 40% of the entire Web to directly own their social profiles, relationships with their audiences, and distribution. I look forward to the continued iteration of this plugin. Each release brings new features that lessen the need for creators to have a separate Mastodon account.
19. Januar 2024
Love this plugin. Recent updates with threaded comments and now federated replies are just excellent - keeping the plugin moving in exactly the right direction. It's reinvigorated my interest in blogging! Hoping that some kind of support for displaying likes and boosts will come in the future, but otherwise it's getting to feel very complete.
9. Januar 2024
Version 2.0 takes this plugin from "good" to "amazing," with full reply federation, which means: 1: You post.2: Someone sees your post on, say, Mastodon, and replies to it, and that reply shows up in your comments on Wordpress.3: You reply to their comment from wordpress...4: ...and they see it back on Mastodon, in their timeline, like any other Mastodon reply. You can even tag Federation people into discussions in replies, the same way you'd tag in anyone else. (By mentioning them with their full account - @ user @ instance - like you would normally.) Depending upon what you want out of federated social media, this means Wordpress could be your only Federation portal... and you'd be fine.This is a big deal.
Alle 21 Rezensionen lesen

Mitwirkende & Entwickler

„ActivityPub“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

„ActivityPub“ wurde in 24 Sprachen übersetzt. Danke an die Übersetzerinnen und Übersetzer für ihre Mitwirkung.

Übersetze „ActivityPub“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

Project maintained on GitHub at automattic/wordpress-activitypub.

2.2.0

  • Added: Remote-Reply lightbox
  • Added: Support application/ld+json mime-type with AP profile in WebFinger
  • Fixed: Prevent scheduler overload

2.1.1

  • Added: Add @ prefix to Follow-Block
  • Added: Apply comment_text filter to Activity

2.1.0

  • Fixed: Some Federated Comment improvements
  • Fixed: Remove old/abandoned Crons
  • Added: Various endpoints for the „Enable Mastodon Apps“ plugin
  • Added: Event Objects
  • Added: Send notification to all Repliers if a new Comment is added
  • Added: Vary-Header support behind feature flag

2.0.1

  • Fixed: Comment Update Federation
  • Workaround: Re-Added Post Model Class because of some weird caching issues
  • Fixed: WebFinger check
  • Fixed: Classic editor image finding for large images

2.0.0

  • Added: Bidirectional Comment Federation
  • Removed: Deprecated Classes
  • Fixed: Normalize attributes that can have mixed value types
  • Added: URL support for WebFinger
  • Added: Make Post-Template filterable
  • Added: CSS class for ActivityPub comments to allow custom designs
  • Added: FEP-2677: Identifying the Application Actor
  • Added: FEP-2c59: Discovery of a Webfinger address from an ActivityPub actor
  • Added: Profile Update Activities
  • Improved: WebFinger endpoints

1.3.0

  • Added: Threaded-Comments support
  • Improved: alt text for avatars in Follow Me/Followers blocks
  • Improved: Delete, Update and Follow Activities
  • Improved: better/more effective handling of Delete Activities
  • Improved: allow <p /> and <br /> for Comments
  • Fixed: removed default limit of WP_Query to send updates to all Inboxes and not only to the first 10

1.2.0

  • Add: Search and order followerer lists
  • Add: Have a filter to defer signature verification
  • Improved: „Follow Me“ styles for dark themes
  • Improved: Allow p and br tags only for AP comments
  • Fixed: Deduplicate attachments earlier to prevent incorrect max_media

1.1.0

  • Improved: audio and video attachments are now supported!
  • Improved: better error messages if remote profile is not accessible
  • Improved: PHP 8.1 compatibility
  • Fixed: don’t try to parse mentions or hashtags for very large (>1MB) posts to prevent timeouts
  • Fixed: better handling of ISO-639-1 locale codes
  • Improved: more reliable [ap_author], props @uk3
  • Improved: NodeInfo statistics

1.0.10

  • Improved: better error messages if remote profile is not accessible

1.0.9

  • Fixed: broken following endpoint

1.0.8

  • Fixed: blocking of HEAD requests
  • Fixed: PHP fatal error
  • Fixed: several typos
  • Fixed: error codes
  • Improved: loading of shortcodes
  • Updated: caching of followers
  • Updated: Application-User is no longer „indexable“
  • Updated: more consistent usage of the application/activity+json Content-Type
  • Removed: featured tags endpoint

1.0.7

  • Fixed: broken function call
  • Add: filter to hook into „is blog public“ check

1.0.6

  • Fixed: more restrictive request verification

1.0.5

  • Fixed: compatibility with WebFinger and NodeInfo plugin

1.0.4

  • Fixed: Constants were not loaded early enough, resulting in a race condition
  • Fixed: Featured image was ignored when using the block editor

1.0.3

  • Fixed: compatibility with older WordPress/PHP versions
  • Update: refactoring of the Plugin init process
  • Update: better frontend UX and improved theme compat for blocks
  • Compatibility: add a ACTIVITYPUB_DISABLE_REWRITES constant
  • Compatibility: add pre-fetch hook to allow plugins to hang filters on

1.0.2

  • Updated: improved hashtag visibility in default template
  • Updated: reduced number of followers to be checked/updated via Cron, when System Cron is not set up
  • Updated: check if username of Blog-User collides with an Authors name
  • Compatibility: improved Group meta informations
  • Fixed: detection of single user mode
  • Fixed: remote delete
  • Fixed: styles in Follow-Me block
  • Fixed: various encoding and formatting issues
  • Fixed: (health) check Author URLs only if Authors are enabled

1.0.1

  • Update: improve image attachment detection using the block editor
  • Update: better error code handling for API responses
  • Update: use a tag stack instead of regex for protecting tags for Hashtags and @-Mentions
  • Compatibility: better signature support for subpath-installations
  • Compatibility: allow deactivating blocks registered by the plugin
  • Compatibility: avoid Fatal Errors when using ClassicPress
  • Compatibility: improve the Group-Actor to play nicely with existing implementations
  • Fixed: truncate long blog titles and handles for the „Follow me“ block
  • Fixed: ensure that only a valid user can be selected for the „Follow me“ block
  • Fixed: fix a typo in a hook name
  • Fixed: a problem with signatures when running WordPress in a sub-path

1.0.0

  • Add: blog-wide Account (catchall, like example.com@example.com)
  • Add: a Follow Me block (help visitors to follow your Profile)
  • Add: Signature Verification: https://docs.joinmastodon.org/spec/security/
  • Add: a Followers Block (show off your Followers)
  • Add: Simple caching
  • Add: Collection endpoints for Featured Tags and Featured Posts
  • Add: Better handling of Hashtags in mobile apps
  • Update: Complete rewrite of the Follower-System based on Custom Post Types
  • Update: Improved linter (PHPCS)
  • Compatibility: Add a new conditional, \Activitypub\is_activitypub_request(), to allow third-party plugins to detect ActivityPub requests
  • Compatibility: Add hooks to allow modifying images returned in ActivityPub requests
  • Compatibility: Indicate that the plugin is compatible and has been tested with the latest version of WordPress, 6.3
  • Compatibility: Avoid PHP notice on sites using PHP 8.2
  • Fixed: Load the plugin later in the WordPress code lifecycle to avoid errors in some requests
  • Fixed: Updating posts
  • Fixed: Hashtag now support CamelCase and UTF-8

0.17.0

  • Fix type-selector
  • Allow more HTML elements in Activity-Objects

0.16.5

  • Return empty content/excerpt on password protected posts/pages

0.16.4

  • Remove scripts later in the queue, to also handle scripts added by blocks
  • Add published date to author profiles

0.16.3

  • „cc“, „to“, … fields can either be an array or a string
  • Remove „style“ and „script“ HTML elements from content

0.16.2

  • Fix fatal error in outbox

0.16.1

  • Fix „update and create, posts appear blank on Mastodon“ issue

0.16.0

  • Add „Outgoing Mentions“ (#213) props @akirk
  • Add configuration item for number of images to attach (#248) props @mexon
  • Use shortcodes instead of custom templates, to setup the Activity Post-Content (#250) props @toolstack
  • Remove custom REST Server, because the needed changes are now merged into Core.
  • Fix hashtags (#261) props @akirk
  • Change priorites, to maybe fix the hashtag issue

0.15.0

  • Enable ActivityPub only for users that can publish_posts
  • Persist only public Activities
  • Fix remote-delete

0.14.3

  • Better error handling. props @akirk

0.14.2

  • Fix Critical error when using Friends Plugin and adding new URL to follow. props @akirk

0.14.1

  • Fix „WebFinger not compatible with PHP < 8.0“. props @mexon

0.14.0

  • Friends support: https://wordpress.org/plugins/friends/ props @akirk
  • Massive guidance improvements. props mediaformat & @akirk
  • Add Custom Post Type support to outbox API. props blueset
  • Better hash-tag support. props bocops
  • Fix user-count (NodeInfo). props mediaformat

0.13.4

  • fix webfinger for email identifiers

0.13.3

  • fix: Create and Note should not have the same ActivityPub ID

0.13.2

  • fix Follow issue AGAIN

0.13.1

  • fix Inbox issue

0.13.0

  • add Autor URL and WebFinger health checks
  • fix NodeInfo endpoint

0.12.0

  • use „pre_option_require_name_email“ filter instead of „check_comment_flood“. props @akirk
  • save only comments/replies
  • check for an explicit „undo -> follow“ action. see https://wordpress.org/support/topic/qs-after-latest/

0.11.2

  • fix inconsistent %tags% placeholder

0.11.1

  • fix follow/unfollow actions

0.11.0

0.10.1

  • fix inbox activities, like follow
  • fix debug

0.10.0

  • add image alt text to the ActivityStreams attachment property in a format that Mastodon can read. props @BenLubar
  • use the „summary“ property for a title as Mastodon does. props @BenLubar
  • support authorized fetch to avoid having comments from „Anonymous“. props @BenLubar
  • add new post type: „title and link only“. props @bgcarlisle

0.9.1

  • disable shared inbox
  • disable delete activity

0.9.0

  • some code refactorings
  • fix #73

0.8.3

  • fixed accept header bug

0.8.2

  • add all required accept header
  • better/simpler accept-header handling
  • add debugging mechanism
  • Add setting to enable AP for different (public) Post-Types
  • explicit use of global functions

0.8.1

  • fixed PHP warnings

0.8.0

  • Moved followers list to user-menu

0.7.4

  • added admin_email to metadata, to be able to „Manage your instance“ on https://fediverse.network/manage/

0.7.3

  • refactorings
  • fixed PHP warnings
  • better …