| 1 |
=== ActivityPub === |
| 2 |
Contributors: pfefferle |
| 3 |
Donate link: https://notiz.blog/donate/ |
| 4 |
Tags: OStatus, fediverse, activitypub, activitystream |
| 5 |
Requires at least: 4.7 |
| 6 |
Tested up to: 5.2.2 |
| 7 |
Stable tag: 0.7.3 |
| 8 |
Requires PHP: 5.6 |
| 9 |
License: MIT |
| 10 |
License URI: http://opensource.org/licenses/MIT |
| 11 |
|
| 12 |
The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format. |
| 13 |
|
| 14 |
== Description == |
| 15 |
|
| 16 |
This is **BETA** software, see the FAQ to see the current feature set or rather what is still planned. |
| 17 |
|
| 18 |
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. |
| 19 |
|
| 20 |
The plugin works with the following federated platforms: |
| 21 |
|
| 22 |
* [mastodon](https://joinmastodon.org/) |
| 23 |
* [pleroma](https://pleroma.social/) |
| 24 |
* [friendica](https://friendi.ca/) |
| 25 |
* [hubzilla](https://hubzilla.org/) |
| 26 |
|
| 27 |
== Frequently Asked Questions == |
| 28 |
|
| 29 |
= What is the status of this plugin? = |
| 30 |
|
| 31 |
Implemented: |
| 32 |
|
| 33 |
* profile pages (JSON representation) |
| 34 |
* custom links |
| 35 |
* functional inbox/outbox |
| 36 |
* follow (accept follows) |
| 37 |
* share posts |
| 38 |
* receive comments/reactions |
| 39 |
|
| 40 |
To implement: |
| 41 |
|
| 42 |
* signature verification |
| 43 |
* better WordPress integration |
| 44 |
* better configuration possibilities |
| 45 |
* threaded comments support |
| 46 |
|
| 47 |
= What is "ActivityPub for WordPress" = |
| 48 |
|
| 49 |
*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://gnu.io/social/). |
| 50 |
|
| 51 |
= What are the differences between this plugin and Pterotype? = |
| 52 |
|
| 53 |
**Compatibility** |
| 54 |
|
| 55 |
*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. |
| 56 |
|
| 57 |
**Custom tables** |
| 58 |
|
| 59 |
*Pterotype* creates/uses a bunch of custom tables, *ActivityPub for WordPress* only uses the native tables and adds as little meta data as possible. |
| 60 |
|
| 61 |
= What if you are running your blog in a subdirectory? = |
| 62 |
|
| 63 |
In order for webfinger to work, it must be mapped to the root directory of the URL on which your blog resides. |
| 64 |
|
| 65 |
**Apache** |
| 66 |
|
| 67 |
Add the following to the .htaccess file in the root directory: |
| 68 |
`RedirectMatch "^\/\.well-known(.*)$" "\/blog\/\.well-known$1"` |
| 69 |
Where 'blog' is the path to the subdirectory at which your blog resides. |
| 70 |
|
| 71 |
= What if you are running your blog in a subdirectory? = |
| 72 |
|
| 73 |
In order for WebFinger to work, it must be mapped to the root directory of the URL on which your blog resides. |
| 74 |
|
| 75 |
**Apache** |
| 76 |
|
| 77 |
Add the following to the .htaccess file in the root directory: |
| 78 |
|
| 79 |
RedirectMatch "^\/\.well-known(.*)$" "\/blog\/\.well-known$1" |
| 80 |
|
| 81 |
Where 'blog' is the path to the subdirectory at which your blog resides. |
| 82 |
|
| 83 |
== Changelog == |
| 84 |
|
| 85 |
Project maintained on GitHub at [pfefferle/wordpress-activitypub](https://github.com/pfefferle/wordpress-activitypub). |
| 86 |
|
| 87 |
= 0.7.3 = |
| 88 |
|
| 89 |
* refactorings |
| 90 |
* fixed PHP warnings |
| 91 |
* better hashtag regex |
| 92 |
|
| 93 |
= 0.7.2 = |
| 94 |
|
| 95 |
* fixed JSON representation of posts https://merveilles.town/@xuv/101907542498716956 |
| 96 |
|
| 97 |
= 0.7.1 = |
| 98 |
|
| 99 |
* fixed inbox problems with pleroma |
| 100 |
|
| 101 |
= 0.7.0 = |
| 102 |
|
| 103 |
* finally fixed pleroma compatibility |
| 104 |
* added "following" endpoint |
| 105 |
* simplified "followers" endpoint |
| 106 |
* fixed default value problem |
| 107 |
|
| 108 |
= 0.6.0 = |
| 109 |
|
| 110 |
* add tags as hashtags to the end of each activity |
| 111 |
* fixed pleroma following issue |
| 112 |
* followers-list improvements |
| 113 |
|
| 114 |
= 0.5.1 = |
| 115 |
|
| 116 |
* fixed name-collision that caused an infinite loop |
| 117 |
|
| 118 |
= 0.5.0 = |
| 119 |
|
| 120 |
* complete refactoring |
| 121 |
* fixed bug #30: Password-protected posts are federated |
| 122 |
* only send Activites when ActivityPub is enabled for this post-type |
| 123 |
|
| 124 |
= 0.4.4 = |
| 125 |
|
| 126 |
* show avatars |
| 127 |
|
| 128 |
= 0.4.3 = |
| 129 |
|
| 130 |
* finally fixed backlink in excerpt/summary posts |
| 131 |
|
| 132 |
= 0.4.2 = |
| 133 |
|
| 134 |
* fixed backlink in excerpt/summary posts (thanks @depone) |
| 135 |
|
| 136 |
= 0.4.1 = |
| 137 |
|
| 138 |
* finally fixed contact list |
| 139 |
|
| 140 |
= 0.4.0 = |
| 141 |
|
| 142 |
* added settings to enable/disable hashtag support |
| 143 |
* fixed follower list |
| 144 |
* send activities only for new posts, otherwise send updates |
| 145 |
|
| 146 |
= 0.3.2 = |
| 147 |
|
| 148 |
* added "followers" endpoint |
| 149 |
* change activity content from blog 'excerpt' to blog 'content' |
| 150 |
|
| 151 |
= 0.3.1 = |
| 152 |
|
| 153 |
* better json encoding |
| 154 |
|
| 155 |
= 0.3.0 = |
| 156 |
|
| 157 |
* basic hashtag support |
| 158 |
* temporarily deactivated likes and boosts |
| 159 |
* added support for actor objects |
| 160 |
* fixed encoding issue |
| 161 |
|
| 162 |
= 0.2.1 = |
| 163 |
|
| 164 |
* customizable backlink (permalink or shorturl) |
| 165 |
* show profile-identifiers also on profile settings |
| 166 |
|
| 167 |
= 0.2.0 = |
| 168 |
|
| 169 |
* added option to switch between content and excerpt |
| 170 |
* removed html and duplicate new-lines |
| 171 |
|
| 172 |
= 0.1.1 = |
| 173 |
|
| 174 |
* fixed "excerpt" in AS JSON |
| 175 |
* added settings for the activity-summary and for the activity-object-type |
| 176 |
|
| 177 |
= 0.1.0 = |
| 178 |
|
| 179 |
* added basic WebFinger support |
| 180 |
* added basic NodeInfo support |
| 181 |
* fully functional "follow" activity |
| 182 |
* send new posts to your followers |
| 183 |
* receive comments from your followers |
| 184 |
|
| 185 |
= 0.0.2 = |
| 186 |
|
| 187 |
* refactoring |
| 188 |
* functional inbox |
| 189 |
* nicer profile views |
| 190 |
|
| 191 |
= 0.0.1 = |
| 192 |
|
| 193 |
* initial |
| 194 |
|
| 195 |
== Installation == |
| 196 |
|
| 197 |
Follow the normal instructions for [installing WordPress plugins](https://codex.wordpress.org/Managing_Plugins#Installing_Plugins). |
| 198 |
|
| 199 |
= Automatic Plugin Installation = |
| 200 |
|
| 201 |
To add a WordPress Plugin using the [built-in plugin installer](https://codex.wordpress.org/Administration_Screens#Add_New_Plugins): |
| 202 |
|
| 203 |
1. Go to [Plugins](https://codex.wordpress.org/Administration_Screens#Plugins) > [Add New](https://codex.wordpress.org/Plugins_Add_New_Screen). |
| 204 |
1. Type "`activitypub`" into the **Search Plugins** box. |
| 205 |
1. Find the WordPress Plugin you wish to install. |
| 206 |
1. Click **Details** for more information about the Plugin and instructions you may wish to print or save to help setup the Plugin. |
| 207 |
1. Click **Install Now** to install the WordPress Plugin. |
| 208 |
1. The resulting installation screen will list the installation as successful or note any problems during the install. |
| 209 |
1. If successful, click **Activate Plugin** to activate it, or **Return to Plugin Installer** for further actions. |
| 210 |
|
| 211 |
= Manual Plugin Installation = |
| 212 |
|
| 213 |
There are a few cases when manually installing a WordPress Plugin is appropriate. |
| 214 |
|
| 215 |
* If you wish to control the placement and the process of installing a WordPress Plugin. |
| 216 |
* If your server does not permit automatic installation of a WordPress Plugin. |
| 217 |
* If you want to try the [latest development version](https://github.com/pfefferle/wordpress-activitypub). |
| 218 |
|
| 219 |
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. |
| 220 |
|
| 221 |
Backup your site completely before proceeding. |
| 222 |
|
| 223 |
To install a WordPress Plugin manually: |
| 224 |
|
| 225 |
* Download your WordPress Plugin to your desktop. |
| 226 |
* Download from [the WordPress directory](https://wordpress.org/plugins/activitypub/) |
| 227 |
* Download from [GitHub](https://github.com/pfefferle/wordpress-activitypub/releases) |
| 228 |
* If downloaded as a zip archive, extract the Plugin folder to your desktop. |
| 229 |
* With your FTP program, upload the Plugin folder to the `wp-content/plugins` folder in your WordPress directory online. |
| 230 |
* Go to [Plugins screen](https://codex.wordpress.org/Administration_Screens#Plugins) and find the newly uploaded Plugin in the list. |
| 231 |
* Click **Activate** to activate it. |
| 232 |
|