diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-04-29 11:14:32 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-04-29 11:14:32 -0500 |
commit | 762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0 (patch) | |
tree | 0416ef7020ba2b333cb223200d7108928f714fde /docs/development/ap_extensions.md | |
parent | b7b05a074867c1444dd539d6d2331f6d5504f6e6 (diff) | |
parent | 115673bce773f91630c3bd4fd2d0023f92bee163 (diff) | |
download | pleroma-762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0.tar.gz pleroma-762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0.zip |
Merge remote-tracking branch 'upstream/develop' into block-behavior
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`. |