2018-08-18 12:35:39 +02:00
# ActivityPub #
2022-12-09 09:17:17 +01:00
**Contributors:** [pfefferle ](https://profiles.wordpress.org/pfefferle/ ), [mediaformat ](https://profiles.wordpress.org/mediaformat/ ), [akirk ](https://profiles.wordpress.org/akirk/ )
2018-08-18 12:35:39 +02:00
**Donate link:** https://notiz.blog/donate/
**Tags:** OStatus, fediverse, activitypub, activitystream
**Requires at least:** 4.7
2022-12-09 09:17:17 +01:00
**Tested up to:** 6.1
2022-12-27 17:26:33 +01:00
**Stable tag:** 0.15.0
2018-12-09 22:20:40 +01:00
**Requires PHP:** 5.6
2018-08-18 12:35:39 +02:00
**License:** MIT
**License URI:** http://opensource.org/licenses/MIT
The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.
2018-09-24 20:47:15 +02:00
## Description ##
2018-12-20 11:33:08 +01:00
This is **BETA** software, see the FAQ to see the current feature set or rather what is still planned.
2018-12-01 21:20:24 +01:00
2019-07-28 22:04:52 +02:00
The plugin implements the ActivityPub protocol for your blog. Your readers will be able to follow your blogposts on Mastodon and other federated platforms that support ActivityPub.
2018-09-24 20:47:15 +02:00
2019-07-28 22:04:52 +02:00
The plugin works with the following federated platforms:
2019-03-14 23:10:11 +01:00
2019-11-18 20:52:37 +01:00
* [Mastodon ](https://joinmastodon.org/ )
* [Pleroma ](https://pleroma.social/ )
* [Friendica ](https://friendi.ca/ )
* [HubZilla ](https://hubzilla.org/ )
* [Pixelfed ](https://pixelfed.org/ )
* [SocialHome ](https://socialhome.network/ )
* [Misskey ](https://join.misskey.page/ )
2019-03-14 23:10:11 +01:00
2018-09-24 20:47:15 +02:00
## Frequently Asked Questions ##
2018-12-01 21:20:24 +01:00
### What is the status of this plugin? ###
Implemented:
* profile pages (JSON representation)
* custom links
* functional inbox/outbox
2018-12-20 19:10:17 +01:00
* follow (accept follows)
* share posts
2018-12-20 11:33:08 +01:00
* receive comments/reactions
2018-12-01 21:20:24 +01:00
To implement:
2018-12-20 19:10:17 +01:00
* signature verification
* better WordPress integration
* better configuration possibilities
2018-12-20 11:33:08 +01:00
* threaded comments support
2018-12-01 21:20:24 +01:00
2018-12-30 11:40:45 +01:00
### What is "ActivityPub for WordPress" ###
2018-12-01 21:20:24 +01:00
2021-01-12 12:44:45 +01:00
*ActivityPub for WordPress* extends WordPress with some Fediverse features, but it does not compete with platforms like Friendica or Mastodon. If you want to run a **decentralized social network** , please use [Mastodon ](https://joinmastodon.org/ ) or [GNU social ](https://gnusocial.network/ ).
2018-12-01 21:20:24 +01:00
2018-12-20 11:33:08 +01:00
### What are the differences between this plugin and Pterotype? ###
2018-12-01 21:20:24 +01:00
**Compatibility**
2019-07-28 22:04:52 +02:00
*ActivityPub for WordPress* is compatible with OStatus and IndieWeb plugin suites. *Pterotype* is incompatible with the standalone [WebFinger plugin ](https://wordpress.org/plugins/webfinger/ ), so it can't be run together with OStatus.
2018-09-24 20:47:15 +02:00
2018-12-01 21:20:24 +01:00
**Custom tables**
2018-09-24 20:47:15 +02:00
2019-07-28 22:04:52 +02:00
*Pterotype* creates/uses a bunch of custom tables, *ActivityPub for WordPress* only uses the native tables and adds as little meta data as possible.
2018-09-24 20:47:15 +02:00
2019-06-10 16:52:44 +02:00
### What if you are running your blog in a subdirectory? ###
2019-11-18 20:52:37 +01:00
In order for webfinger to work, it must be mapped to the root directory of the URL on which your blog resides.
2019-08-20 10:25:07 +02:00
**Apache**
Add the following to the .htaccess file in the root directory:
2019-10-11 20:27:36 +02:00
RedirectMatch "^\/\.well-known(.*)$" "\/blog\/\.well-known$1"
2019-06-10 16:52:44 +02:00
2019-10-11 20:27:36 +02:00
Where 'blog' is the path to the subdirectory at which your blog resides.
2019-06-10 16:52:44 +02:00
2019-10-11 20:27:36 +02:00
**Nginx**
2019-08-18 21:47:33 +02:00
2019-10-11 20:27:36 +02:00
Add the following to the site.conf in sites-available:
2019-08-18 21:47:33 +02:00
2019-10-11 20:27:36 +02:00
location ~* /.well-known {
allow all;
try_files $uri $uri/ /blog/?$args;
}
2019-11-18 20:52:37 +01:00
2019-06-10 16:52:44 +02:00
Where 'blog' is the path to the subdirectory at which your blog resides.
2018-09-24 20:47:15 +02:00
## Changelog ##
2018-11-04 21:38:11 +01:00
2019-07-28 22:04:52 +02:00
Project maintained on GitHub at [pfefferle/wordpress-activitypub ](https://github.com/pfefferle/wordpress-activitypub ).
2018-12-01 21:23:00 +01:00
2022-12-27 17:26:33 +01:00
### 0.15.0 ###
* Enable ActivityPub only for users that can `publish_posts`
2022-12-27 20:44:36 +01:00
* Persist only public Activities
2022-12-27 17:26:33 +01:00
* Fix remote-delete
2022-12-15 15:57:55 +01:00
### 0.14.3 ###
* Better error handling. props [@akirk ](https://github.com/akirk )
2022-12-11 11:29:06 +01:00
### 0.14.2 ###
* Fix Critical error when using Friends Plugin and adding new URL to follow. props [@akirk ](https://github.com/akirk )
2022-12-10 17:58:24 +01:00
### 0.14.1 ###
* Fix "WebFinger not compatible with PHP < 8.0 ". props [@mexon ](https://github.com/mexon )
2022-12-09 09:17:17 +01:00
### 0.14.0 ###
2022-12-11 11:29:06 +01:00
* Friends support: https://wordpress.org/plugins/friends/ . props [@akirk ](https://github.com/akirk )
2022-12-09 09:17:17 +01:00
* Massive guidance improvements. props [mediaformat ](https://github.com/mediaformat ) & [@akirk ](https://github.com/akirk )
* Add Custom Post Type support to outbox API. props [blueset ](https://github.com/blueset )
* Better hash-tag support. props [bocops ](https://github.com/bocops )
* Fix user-count (NodeInfo). props [mediaformat ](https://github.com/mediaformat )
2022-07-08 21:04:21 +02:00
### 0.13.4 ###
* fix webfinger for email identifiers
2022-01-26 09:37:20 +01:00
### 0.13.3 ###
* fix: Create and Note should not have the same ActivityPub ID
2021-11-17 21:11:34 +01:00
### 0.13.2 ###
* fix Follow issue AGAIN
2021-07-26 09:48:51 +02:00
### 0.13.1 ###
* fix Inbox issue
2021-07-23 15:46:28 +02:00
### 0.13.0 ###
* add Autor URL and WebFinger health checks
* fix NodeInfo endpoint
2020-12-21 20:49:21 +01:00
### 0.12.0 ###
* use "pre_option_require_name_email" filter instead of "check_comment_flood". props [@akirk ](https://github.com/akirk )
* save only comments/replies
* check for an explicit "undo -> follow" action. see https://wordpress.org/support/topic/qs-after-latest/
2020-12-17 22:21:41 +01:00
### 0.11.2 ###
* fix inconsistent `%tags%` placeholder
2020-12-17 21:16:09 +01:00
### 0.11.1 ###
* fix follow/unfollow actions
2020-12-17 18:28:56 +01:00
### 0.11.0 ###
* add support for customizable post-content
* first try of a delete activity
* do not require email for AP entries. props [@akirk ](https://github.com/akirk )
* fix [timezones ](https://github.com/pfefferle/wordpress-activitypub/issues/63 ) bug. props [@mediaformat ](https://github.com/mediaformat )
* fix [digest header ](https://github.com/pfefferle/wordpress-activitypub/issues/104 ) bug. props [@mediaformat ](https://github.com/mediaformat )
2020-05-04 00:06:48 +02:00
### 0.10.1 ###
* fix inbox activities, like follow
* fix debug
2020-02-11 10:14:30 +01:00
### 0.10.0 ###
* add image alt text to the ActivityStreams attachment property in a format that Mastodon can read. props [@BenLubar ](https://github.com/BenLubar )
* use the "summary" property for a title as Mastodon does. props [@BenLubar ](https://github.com/BenLubar )
* support authorized fetch to avoid having comments from "Anonymous". props [@BenLubar ](https://github.com/BenLubar )
* add new post type: "title and link only". props [@bgcarlisle ](https://github.com/bgcarlisle )
2019-11-27 08:27:37 +01:00
### 0.9.1 ###
* disable shared inbox
* disable delete activity
2019-11-24 21:26:00 +01:00
### 0.9.0 ###
* some code refactorings
* fix #73
2019-09-30 07:59:19 +02:00
### 0.8.3 ###
* fixed accept header bug
2019-09-29 20:05:20 +02:00
### 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
2019-08-21 15:06:48 +02:00
### 0.8.1 ###
* fixed PHP warnings
2019-08-21 10:38:43 +02:00
### 0.8.0 ###
* Moved followers list to user-menu
2019-08-20 13:03:06 +02:00
### 0.7.4 ###
* added admin_email to metadata, to be able to "Manage your instance" on https://fediverse.network/manage/
2019-08-20 10:25:07 +02:00
### 0.7.3 ###
* refactorings
* fixed PHP warnings
2019-08-20 10:31:16 +02:00
* better hashtag regex
2019-08-20 10:25:07 +02:00
2019-04-13 20:07:56 +02:00
### 0.7.2 ###
2019-07-28 22:04:52 +02:00
* fixed JSON representation of posts https://merveilles.town/@xuv/101907542498716956
2019-04-13 20:07:56 +02:00
2019-03-14 23:10:11 +01:00
### 0.7.1 ###
* fixed inbox problems with pleroma
2019-03-12 22:22:59 +01:00
### 0.7.0 ###
* finally fixed pleroma compatibility
* added "following" endpoint
* simplified "followers" endpoint
* fixed default value problem
2019-03-09 01:25:51 +01:00
### 0.6.0 ###
2019-03-02 21:10:42 +01:00
* add tags as hashtags to the end of each activity
2019-03-09 01:25:51 +01:00
* fixed pleroma following issue
* followers-list improvements
2019-03-02 21:10:42 +01:00
2019-03-02 20:31:55 +01:00
### 0.5.1 ###
2019-07-28 22:04:52 +02:00
* fixed name-collision that caused an infinite loop
2019-03-02 20:31:55 +01:00
2019-02-28 19:32:10 +01:00
### 0.5.0 ###
* complete refactoring
* fixed bug #30: Password-protected posts are federated
* only send Activites when ActivityPub is enabled for this post-type
2019-02-20 21:05:29 +01:00
### 0.4.4 ###
* show avatars
2019-02-20 20:25:19 +01:00
### 0.4.3 ###
* finally fixed backlink in excerpt/summary posts
2019-02-20 19:47:37 +01:00
### 0.4.2 ###
* fixed backlink in excerpt/summary posts (thanks @depone )
2019-02-19 22:43:14 +01:00
### 0.4.1 ###
* finally fixed contact list
2019-02-17 21:27:20 +01:00
### 0.4.0 ###
* added settings to enable/disable hashtag support
* fixed follower list
* send activities only for new posts, otherwise send updates
2019-02-04 13:30:18 +01:00
### 0.3.2 ###
* added "followers" endpoint
2019-02-04 13:40:23 +01:00
* change activity content from blog 'excerpt' to blog 'content'
2019-02-04 13:30:18 +01:00
2019-02-03 00:44:01 +01:00
### 0.3.1 ###
* better json encoding
2019-01-22 20:51:22 +01:00
### 0.3.0 ###
2019-02-03 00:44:01 +01:00
* basic hashtag support
2019-07-28 22:04:52 +02:00
* temporarily deactivated likes and boosts
2019-02-03 00:44:01 +01:00
* added support for actor objects
2019-02-02 23:56:05 +01:00
* fixed encoding issue
2019-01-22 20:51:22 +01:00
2019-01-16 21:52:59 +01:00
### 0.2.1 ###
* customizable backlink (permalink or shorturl)
* show profile-identifiers also on profile settings
2019-01-04 19:57:33 +01:00
### 0.2.0 ###
* added option to switch between content and excerpt
2019-07-28 22:04:52 +02:00
* removed html and duplicate new-lines
2019-01-04 19:57:33 +01:00
2018-12-30 11:40:45 +01:00
### 0.1.1 ###
2018-12-20 19:10:17 +01:00
2018-12-30 11:41:56 +01:00
* fixed "excerpt" in AS JSON
2018-12-28 22:47:17 +01:00
* added settings for the activity-summary and for the activity-object-type
2018-12-20 19:10:17 +01:00
2018-12-08 00:02:18 +01:00
### 0.1.0 ###
2018-12-09 22:20:40 +01:00
* added basic WebFinger support
* added basic NodeInfo support
2018-12-20 19:10:17 +01:00
* fully functional "follow" activity
* send new posts to your followers
2018-12-20 11:33:08 +01:00
* receive comments from your followers
2018-12-08 00:02:18 +01:00
2018-11-04 21:38:11 +01:00
### 0.0.2 ###
2019-07-28 22:04:52 +02:00
* refactoring
2018-11-04 21:38:11 +01:00
* functional inbox
* nicer profile views
2018-09-24 20:47:15 +02:00
### 0.0.1 ###
* initial
## Installation ##
2020-03-15 20:34:50 +01:00
Follow the normal instructions for [installing WordPress plugins ](https://wordpress.org/support/article/managing-plugins/ ).
2018-09-24 20:47:15 +02:00
### Automatic Plugin Installation ###
To add a WordPress Plugin using the [built-in plugin installer ](https://codex.wordpress.org/Administration_Screens#Add_New_Plugins ):
1. Go to [Plugins ](https://codex.wordpress.org/Administration_Screens#Plugins ) > [Add New ](https://codex.wordpress.org/Plugins_Add_New_Screen ).
1. Type "`activitypub`" into the **Search Plugins** box.
1. Find the WordPress Plugin you wish to install.
1. Click **Details** for more information about the Plugin and instructions you may wish to print or save to help setup the Plugin.
1. Click **Install Now** to install the WordPress Plugin.
1. The resulting installation screen will list the installation as successful or note any problems during the install.
1. If successful, click **Activate Plugin** to activate it, or **Return to Plugin Installer** for further actions.
### Manual Plugin Installation ###
There are a few cases when manually installing a WordPress Plugin is appropriate.
* If you wish to control the placement and the process of installing a WordPress Plugin.
* If your server does not permit automatic installation of a WordPress Plugin.
* If you want to try the [latest development version ](https://github.com/pfefferle/wordpress-activitypub ).
Installation of a WordPress Plugin manually requires FTP familiarity and the awareness that you may put your site at risk if you install a WordPress Plugin incompatible with the current version or from an unreliable source.
Backup your site completely before proceeding.
To install a WordPress Plugin manually:
* Download your WordPress Plugin to your desktop.
* Download from [the WordPress directory ](https://wordpress.org/plugins/activitypub/ )
* Download from [GitHub ](https://github.com/pfefferle/wordpress-activitypub/releases )
* If downloaded as a zip archive, extract the Plugin folder to your desktop.
* With your FTP program, upload the Plugin folder to the `wp-content/plugins` folder in your WordPress directory online.
* Go to [Plugins screen ](https://codex.wordpress.org/Administration_Screens#Plugins ) and find the newly uploaded Plugin in the list.
* Click **Activate** to activate it.