I wrote a detailed guide on configuring ActivityPub, Friends, and several other plugins to turn your self-hosted WordPress website into a node on the fediverse.
I wrote a detailed guide on configuring ActivityPub, Friends, and several other plugins to turn your self-hosted WordPress website into a node on the fediverse.
I’m not sure if any projects actually do automatic backfill, but they could and there does seem to be a desire to implement it.
This is your ActivityPub outbox (as JSON). The part it doesn’t seem to handle nicely is pasting an object ID/post URL into some other fediverse software to fetch the post manually, which is how someone would interact with an old post from a new follow on Mastodon.
I want to enable comments via ActivityPub (and only via ActivityPub) for a site I use Wordpress on, but I’m not sure I’m sufficiently motivated to try to debug the Friends plugin myself.
Yes, that would be nice, although I’m not sure how implementation would work. You need something to anchor the toots to the post. The logical choice is the URL of the post. However, this can be accomplished already with webmention and doesn’t need ActivityPub at all. You have to use something like Bridgy to monitor your account for your domain and then pass them to webmention. Unfortunately, Bridgy can be a little finicky.
I used to use a WordPress plugin that allowed people to post comments using their social media accounts, but that was just for verification and it wasn’t an integration with social media.
The ideal technical implementation is that when a client requests the post with an accept header of
application/ld+json; profile="https://www.w3.org/ns/activitystreams"
, Wordpress sends the ActivityPub version of the post instead of HTML. It should have the same content as the items in the outbox. There may be limitations in the Wordpress plugin API that prevent this.Another implementation allowed by the standard would be to have a different URL for the ActivityPub ID and put the post’s URL in the object’s URL property, or insert it in the content. Perhaps version 2 of the plugin will handle this better.