diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-04-30 13:17:03 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-04-30 13:17:03 -0500 |
commit | 52fc59f125c10ad73b9fd1a0639b6dc5681776ca (patch) | |
tree | 7de32329acbdd4bdf5c753678a2d459c61b58d80 /docs/development/ap_extensions.md | |
parent | a8fa00ef666f574aec8048626aed78a7d62e6915 (diff) | |
parent | 377f84f3678f9c2541fbd4a200cd93c5ab0dea24 (diff) | |
download | pleroma-52fc59f125c10ad73b9fd1a0639b6dc5681776ca.tar.gz pleroma-52fc59f125c10ad73b9fd1a0639b6dc5681776ca.zip |
Merge remote-tracking branch 'upstream/develop' into earmark
Diffstat (limited to 'docs/development/ap_extensions.md')
-rw-r--r-- | docs/development/ap_extensions.md | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/development/ap_extensions.md b/docs/development/ap_extensions.md new file mode 100644 index 000000000..3d1caeb3e --- /dev/null +++ b/docs/development/ap_extensions.md @@ -0,0 +1,65 @@ +# AP Extensions +## Actor endpoints + +The following endpoints are additionally present into our actors. + +- `oauthRegistrationEndpoint` (`http://litepub.social/ns#oauthRegistrationEndpoint`) +- `uploadMedia` (`https://www.w3.org/ns/activitystreams#uploadMedia`) + +### oauthRegistrationEndpoint + +Points to MastodonAPI `/api/v1/apps` for now. + +See <https://docs.joinmastodon.org/methods/apps/> + +### uploadMedia + +Inspired by <https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload>, it is part of the ActivityStreams namespace because it used to be part of the ActivityPub specification and got removed from it. + +Content-Type: multipart/form-data + +Parameters: +- (required) `file`: The file being uploaded +- (optionnal) `description`: A plain-text description of the media, for accessibility purposes. + +Response: HTTP 201 Created with the object into the body, no `Location` header provided as it doesn't have an `id` + +The object given in the reponse should then be inserted into an Object's `attachment` field. + +## ChatMessages + +`ChatMessage`s are the messages sent in 1-on-1 chats. They are similar to +`Note`s, but the addresing is done by having a single AP actor in the `to` +field. Addressing multiple actors is not allowed. These messages are always +private, there is no public version of them. They are created with a `Create` +activity. + +They are part of the `litepub` namespace as `http://litepub.social/ns#ChatMessage`. + +Example: + +```json +{ + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad.", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" +} +``` + +This setup does not prevent multi-user chats, but these will have to go through +a `Group`, which will be the recipient of the messages and then `Announce` them +to the users in the `Group`. |