jointrashposs/content/fr-FR/docs/api/index.md

122 lines
4.5 KiB
Markdown
Raw Normal View History

2023-07-08 10:36:02 +02:00
---
description: 'Misskey offre une API pour développer son propre client Misskey, des services, des bots, etc… («Applications».'
---
# API Misskey
Misskey dispose dune APi pour développer son propre client Misskey, des services liés, des bots, etc… («Applications»).
Il existe également un flux API pour créer des applications avec des fonctions en temps réel.
::: tip
En utilisant le SDK officiel Misskey ou une librairie tierce, vous pouvez utiliser lAPI de manière à simplifier des étapes décrites dans ce document.
Voir [ici](TODO) pour plus dinformations à propos des librairies.
:::
Pour commencer à utiliser lAPI vous aurez besoin une **clé daccès** associée à un compte.
Ce document vous accompagne dans lobtention de cette clé et montre comment lutiliser pour un usage basique.
## Obtenir une clé daccès
LAPI requiert une clé daccès pour ses requêtes.
Une clé daccès est un ensemble de données associée à une personne, lidentifiant comme utilisant lAPI et contrôlant les opérations qui sont effectuées.
::: tip
La clé est nominative et ne peut être utilisée que par une personne, plusieurs clés peuvent être possédées par une personne.
:::
Vous pouvez facilement [obtenir votre clé daccès](#Méthode-manuelle), ou une [clé pour une personne utilisant votre application](#Demander-une-clé-daccès)..
### Méthode manuelle
Vous pouvez créer votre propre clé daccès via linterface Misskey Web dans la section API des paramètres.
::: warning
Ne communiquez pas cette clé.
:::
### Demander une clé daccès
Pour obtenir une clé daccès pour une personne utilisant votre application, suivre les étapes suivantes :
::: tip
以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。
[アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app)
:::
#### Étape 1
Générer un UUID, ci-après dénommé **ID session**.
::: warning
Cet ID session est à usage unique.
:::
#### Étape 2
Le formulaire didentification de lapplication doit safficher dans le navigateur. Cela peut être fait via une URL de format :
```:no-line-numbers
https://{host}/miauth/{session}
```
- `{host}` est lhôte de linstance, généralement entré manuellement ;
- `{session}` est lID session.
Vous pouvez également ajouter des options telles que des paramètres dans lURL :
| nom | description |
| ---- | ---- |
| `name` | nom de lapplication |
| `icon` | URL de licône de lapplication |
| `callback` | LURL de redirection après identificaton, avec lID session en tant que `session`. |
| `permission` | Les permissions requises par lapplication. <br>Liste les permissions à demander, séparées par `,`. La liste complète est consultable [ici](TODO). |
```:no-line-numbers
https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive
```
#### Étape 3
Après lidentification, une requête POST à une URL du format suivant retournera en un JSON contenant la clé daccès :
```:no-line-numbers
https://{host}/api/miauth/{session}/check
```
- `{host}` est lhôte de linstance ;
- `{session}` est lID session.
Les propriétés incluses dans la réponse sont les suivantes :
| nom | description |
| ---- | ---- |
| `token` | clé daccès |
| `user` | information sur la personne |
## Utilisation de lAPI
Une fois la clé en main, vous pouvez utiliser lAPI pour faire des requêtes.
::: tip
- Toutes les API HTTP sont POST, et les requête comme les réponses sont au format JSON (à lexception de drive/files/create ;
- Indiquez `Content-Type: application/json` dans lentête de requête ;
- La clé daccès est dans le corps de requête JSON avec comme valeur de name `i`.
:::
Exemple de corps avec une clé daccès pour meta :
```json
{
"i": "HogEFugA1341",
"detail": false
}
```
La clé daccès est incluse dans le corps de requête JSON comme paramètre `i`.
Pour plus dinformations à propos de lAPI voir [référence API](./endpoints.html).
::: warning
Misskey nutilise pas REST.
:::
En plus de lAPIHTTP, Misskey fourni un flux API. Plus dinformations à ce sujet [ici](.streaming/).
::: tip
Votre instance Misskey dispose de sa propre documentation dAPI à `/api-doc`.
:::