2020-10-02 19:47:43 +00:00
# AP Extensions
## Actor endpoints
The following endpoints are additionally present into our actors.
2020-10-05 15:32:10 +00:00
- `oauthRegistrationEndpoint` (`http://litepub.social/ns#oauthRegistrationEndpoint`)
- `uploadMedia` (`https://www.w3.org/ns/activitystreams#uploadMedia`)
2020-10-02 19:47:43 +00:00
2020-10-05 15:18:58 +00:00
### oauthRegistrationEndpoint
Points to MastodonAPI `/api/v1/apps` for now.
See < https: / / docs . joinmastodon . org / methods / apps / >
2020-10-02 19:47:43 +00:00
### uploadMedia
2020-10-05 15:32:10 +00:00
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.
2020-10-02 19:47:43 +00:00
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
2020-04-23 14:55:00 +00:00
2020-10-05 15:32:10 +00:00
`ChatMessage` s are the messages sent in 1-on-1 chats. They are similar to
2020-04-23 14:55:00 +00:00
`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.
2020-10-05 15:32:10 +00:00
They are part of the `litepub` namespace as `http://litepub.social/ns#ChatMessage` .
2020-04-23 14:55:00 +00:00
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` .