iamdoubz-update-from-src-patch/source/API.html.md
Baptiste Gelez e1b51db4df Many changes
Update everything (I may have forgotten a few details however)

Split installation documentation in many parts, and make it so that
you only read what you need to read.

Left menu to quickly go to another page.

Remove the i18n docs as it was outdated and it duplicated contribute.joinplu.me
2019-02-13 20:28:35 +01:00

53 lines
1.5 KiB
Markdown

---
title: API documentation
icon: code
summary: Plume can be extended by other applications thanks to a REST API.
---
## Getting an API token
To get access to the API, you should register your app and obtain a
token. To do so, use the `/api/v1/apps` API (accessible without a token) to create
a new app. Store the result somewhere for future use.
Then send a request to `/api/v1/oauth2`, with the following GET parameters:
- `client_id`, your client ID.
- `client_secret`, your client secret.
- `scopes`, the scopes you want to access. They are separated by `+`, and can either
be `read` (global read), `write` (global write), `read:SCOPE` (read only in `SCOPE`),
or `write:SCOPE` (write only in `SCOPE`).
- `username` the username (not the email, display name nor the fully qualified name) of the
user using your app.
- `password`, the password of the user.
Plume will respond with something similar to:
```json
{
"token": "<YOUR TOKEN HERE>"
}
```
To authenticate your requests you should put this token in the `Authorization` header:
```
Authorization: Bearer <YOUR TOKEN HERE>
```
<script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js"></script>
<script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
<div id="api"></div>
<script>
const ui = SwaggerUIBundle({
url: "/api.yaml",
dom_id: '#api',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
layout: "StandaloneLayout"
})
</script>