1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Connecter des apps externes Ă kChat
Ce guide vous permet d'accéder à la gestion des applications externes à kChat.
Prérequis
- ne pas être un utilisateur externe (il ne verra pas le menu Intégrations)
Accéder à l'interface
Pour configurer un webhook, trouver des applications et intégrations auto-hébergées ou tierces:
- ouvrir l'app kChat (sur votre appareil ou depuis un navigateur Ă l'URL kchat.infomaniak.com)
- cliquer sur le chevron Ă droite du nom de votre organisation kChat
- cliquer sur Intégrations
- accéder aux catégories:
Exemple d'intégration
Créer un Webhook entrant simple
Pour cela:
- cliquer sur la catégorie Webhooks entrants
- cliquer sur le bouton bleu Ajouter des webhooks entrants
- ajouter un nom et une description (500 char. max) pour le webhook
- sélectionner le canal qui recevra les messages
- enregistrer pour obtenir l'URL (à ne pas dévoiler publiquement) de type:
https://your-kchat-server.xyz/hooks/xxx-generatedkey-xxx
Utiliser le Webhook
Sur l'application qui doit poster sur kChat:
- adapter le code ci-dessous en fonction de l'URL obtenue:
POST /hooks/xxx-generatedkey-xxx HTTP/1.1
Host: your-kchat-server.xyz
Content-Type: application/json
Content-Length: 63
{
"text": "Hello, this is some text\nThis is more text."
} - utiliser Ă choix la mĂŞme requĂŞte mais en curl (pour tester depuis un Terminal macOS p.ex):
curl -i -X POST -H 'Content-Type: application/json' -d '{"text": "Hello, this is some text\nThis is more text."}' https://your-kchat-server.xyz/hooks/xxx-generatedkey-xxx
Si aucun entête Content-Type n'est défini, le corps de la requête doit être préfixé par payload= comme ceci:
payload={"text": "Hello, this is some text\nThis is more text."}
Une requête réussie obtiendra la réponse suivante :
HTTP/1.1 200 OK
Content-Type: text/plain
X-Request-Id: hoan69ws7rp5xj7wu9rmystry
X-Version-Id: 4.7.1.dev.12799dvd77e172e8a2eba0f4041ec1471.false
Date: Sun, 01 Jun 2023 17:00:00 GMT
Content-Length: 2
ok
Paramètres
En plus du champ text
, voici la liste complète des paramètres supportés:
Paramètre | Description | Requis |
---|---|---|
text | Message en format Markdown à afficher dans la publication. Pour déclencher des notifications, utiliser @<username> , @channel et @here comme vous le feriez dans d'autres messages kChat. | Si attachments n'est pas défini, oui |
channel | Remplace le canal dans lequel le message est publié. utiliser le nom du canal et non le nom d'affichage, p.ex utiliser town-square , pas Town Square .utiliser un "@" suivi d'un nom d'utilisateur pour envoyer un message direct. Par défaut, utilise le canal défini lors de la création du webhook. Le webhook peut publier dans n'importe quel canal public et privé dans lequel le créateur du webhook est présent. Les publications dans les messages directs apparaîtront dans le message direct entre l'utilisateur ciblé et le créateur du webhook. | Non |
username | Remplace le nom d'utilisateur sous lequel le message est publié. Par défaut, utilise le nom d'utilisateur défini lors de la création du webhook ; si aucun nom d'utilisateur n'a été défini lors de la création, utilise webhook .Le paramètre de configuration Autoriser les intégrations à remplacer les noms d'utilisateur doit être activé pour que le remplacement du nom d'utilisateur prenne effet. | Non |
icon_url | Remplace l'image de profil avec laquelle le message est publié. Par défaut, utilise l'URL définie lors de la création du webhook ; si aucune icône n'a été définie lors de la création, l'icône standard du webhook () est affichée. Le paramètre de configuration Autoriser les intégrations à remplacer les icônes de photos de profil doit être activé pour que le remplacement de l'icône prenne effet. | Non |
icon_emoji | Remplace l'image de profil et le paramètre icon_url .Par défaut, aucun n'est défini lors de la création du webhook. La valeur attendue est le nom d'un émoji tel qu'il est tapé dans un message, avec ou sans deux-points ( : ).Le paramètre de configuration Autoriser les intégrations à remplacer les icônes de photos de profil doit être activé pour que le remplacement prenne effet. | Non |
attachments | Pièces jointes au message utilisées pour des options de mise en forme plus riches. | Si text n'est pas défini, oui |
type | DĂ©finit le type de la publication, principalement pour une utilisation par les plugins.S'il n'est pas vide, doit commencer par " custom_ ". | Non |
Exemple de code avec paramètres
Voici comment générer un message plus complet avec des paramètres dont certains peuvent écraser d'éventuels paramètres déjà établis lors de la création du webhook (nom d'utilisateur, canal préféré, avatar...) comme indiqué dans le tableau ci-dessus:
POST /hooks/xxx-generatedkey-xxx HTTP/1.1
Host: your-kchat-server.xyz
Content-Type: application/json
Content-Length: 630
{
"channel": "kchatemp",
"username": "test-automation",
"icon_url": "https://domain.xyz/wp-content/uploads/2023/06/icon.png",
"text": "#### Test results for July 27th, 2023\n@channel please review failed tests.\n\n| Component | Tests Run | Tests Failed |\n|:-----------|:-----------:|:-----------------------------------------------|\n| Server | 948 | 0 |\n| Web Client | 123 | 2 [(see details)](https://linktologs) |\n| iOS Client | 78 | 3 [(see details)](https://linktologs) |"
}
ce qui aura comme effet d'afficher ce message dans le canal kchatemp de l'organisation: