L’API Web est une collection de méthodes de type HTTP RPC, toutes avec des URL sous la forme https://slack.com/api/METHOD_FAMILY.method
.
Bien qu’il ne s’agisse pas d’une API REST, ceux qui sont familiers avec REST devraient être à l’aise avec ses fondements en HTTP.
Utilisez HTTPS et SSL lors de l’appel de toutes les méthodes.
Chaque méthode dispose d’une série d’arguments définissant vos intentions d’exécution.
Passez les arguments comme suit :
- Paramètres de chaîne de requête GET
- Paramètres POST présentés sous la forme
application/x-www-form-urlencoded
- ou un mélange de paramètres GET et POST
- Certaines méthodes d’écriture autorisent les arguments de type
application/json
- [
files.upload
] attendmultipart/form-data
, ce qui signifie que vous devez envoyer la plupart des paramètres sous forme de paires clé/valeur enapplication/x-www-form-urlencoded
mais envoyer les fichiers dans leur type de contenu natif.
Certaines méthodes, comme chat.postMessage
et dialog.open
, acceptent des arguments sous forme de tableaux associatifs JSON. Ces méthodes peuvent être difficiles à construire correctement avec un Content-type
de type application/x-www-form-urlencoded
, c’est pourquoi nous recommandons fortement d’utiliser des corps encodés en JSON.
Corps POST
Lors de l’envoi d’une requête HTTP POST, vous pouvez transmettre vos arguments soit en tant que paramètres POST standard, soit au format JSON.
Corps encodés dans l’URL
Lorsque vous envoyez des données encodées dans l’URL, définissez l’en-tête HTTP Content-type
sur application/x-www-form-urlencoded
et présentez vos paires clé/valeur selon la RFC-3986.
Par exemple, une requête POST vers conversations.create
pourrait ressembler à ceci :
POST /api/conversations.create
Content-type: application/x-www-form-urlencoded
token=xoxa-xxxxxxxxx-xxxx&name=something-urgent
Toutes les réponses de l’API Web contiennent un objet JSON, qui inclura toujours une propriété booléenne de premier niveau ok
, indiquant le succès ou l’échec.
En cas d’échec, la propriété error
contiendra un code d’erreur lisible par une machine. Dans le cas d’appels problématiques mais réussis, ok
sera true
et la propriété warning
contiendra un ou plusieurs codes d’avertissement séparés par des virgules.
{
"ok": true,
"stuff": "C’est bon"
}
{
"ok": false,
"error": "quelque_chose_de_mauvais"
}
{
"ok": true,
"warning": "quelque_chose_de_problématique"
"stuff": "Les informations demandées"
}
Les autres propriétés sont définies dans la documentation de chaque méthode concernée. Il y a beaucoup de "choses" à découvrir, y compris ces types et d’autres curiosités propres aux méthodes ou domaines.
Authentifiez vos requêtes à l’API Web en fournissant un jeton d’accès, qui identifie un utilisateur, un bot, ou une relation application-espace de travail.
Enregistrez votre application sur Slack pour obtenir des identifiants à utiliser avec notre implémentation OAuth 2.0, qui vous permet de négocier des jetons au nom des utilisateurs et des espaces de travail.
Nous préférons que les jetons soient envoyés dans l’en-tête HTTP Authorization
de vos requêtes sortantes. Toutefois, vous pouvez également transmettre les jetons en tant que paramètre token
dans tous les appels à l’API Web.
Traitez les jetons avec soin. Ne partagez jamais vos jetons avec d'autres utilisateurs ou applications. Ne publiez pas vos jetons dans des dépôts de code publics. Consultez les conseils de sécurité des jetons.
Une façon de comprendre toute la magie derrière les méthodes est de consulter notre spécification OpenAPI 2.0, qui décrit les requêtes et réponses présentes dans notre API Web.
- Téléchargez la spécification depuis sa source officielle sur api.slack.com
- Consultez l’historique de la spécification sur GitHub
Avec plus de 100 méthodes, il y en a sûrement une qui répond à vos besoins. Voici une liste des différentes familles de méthodes disponibles dans notre API Web :
- api
- apps.permissions
- apps.permissions.resources
- apps.permissions.scopes
- apps.permissions.users
- apps
- auth
- bots
- channels
- chat
- conversations
- dialog
- dnd
- emoji
- files.comments
- files
- groups
- im
- migration
- mpim
- oauth
- pins
- reactions
- reminders
- rtm
- search
- stars
- team
- team.profile
- usergroups
- usergroups.users
- users
- users.profile
Informations extraites du site Slack API.