1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Conectar aplicaciones externas a kChat
Esta guía le permite gestionar aplicaciones externas con kChat utilizando webhooks.
Prólogo
- Un webhook es un método que permite a una aplicación ser informada inmediatamente cuando ocurre un evento particular en otra aplicación, en lugar de preguntar constantemente a esta aplicación si ha ocurrido algo nuevo (lo que se conoce como "polling").
- Webhook saliente: kChat comunica información a otras aplicaciones cuando ocurre un evento en kChat.
- Webhook entrante: kChat recibe información de otras aplicaciones para desencadenar acciones en kChat.
- No es posible importar el historial de conversaciones desde otra aplicación (Slack, Teams, Jabber, etc.) o desde otra Organización.
Acceder a la interfaz de webhooks de kChat
Requisitos previos
- No ser un usuario externo (este no verá el menú Integraciones).
Para configurar un webhook, encontrar aplicaciones e integraciones autoalojadas o de terceros:
- Haga clic aquí para acceder a la aplicación web kChat (servicio en línea kchat.infomaniak.com) o abra la aplicación de escritorio kChat (aplicación de escritorio en macOS / Windows / Linux).
- Haga clic en el icono Nuevo junto al nombre de su organización kChat.
- Haga clic en Integraciones.
- Acceda a las categorías:
Ejemplo de integración
Crear un webhook entrante simple
Para ello:
- Haga clic en la categoría Webhooks entrantes.
- Haga clic en el botón azul Agregar webhooks entrantes:
- Agregue un nombre y una descripción (máx. 500 caracteres) para el webhook.
- Seleccione el canal que recibirá los mensajes
- Guarde para obtener la URL (no divulgar públicamente); ejemplo “
https://your-server-kchat.xyz/hooks/xxx-key-generated-xxx
”.
Uso del webhook
En la aplicación que debe publicar en kChat:
Ajuste el código a continuación según la URL obtenida:
POST /hooks/xxx-key-generated-xxx HTTP/1.1 Host: your-server-kchat.xyz Content-Type: application/json Content-Length: 63 { "text": "Hello, text1 Text2." }
Utilice eventualmente la misma solicitud pero en
curl
(para probar desde una aplicación de tipoTerminal
(interfaz de línea de comandos,CLI /Command Line Interface
) en su dispositivo):curl -i -X POST -H 'Content-Type: application/json' -d '{"text": "Hello, text1 Text2."}' https://your-server-kchat.xyz/hooks/xxx-key-generated-xxx
Si no se define ningún encabezado Content-Type
, el cuerpo de la solicitud debe preceder de payload=
de la siguiente manera:
payload={"text": "Hello, text1
Text2."}
Una solicitud exitosa recibirá la siguiente respuesta:
HTTP/1.1 200 OK
Content-Type: application/json
X-Version-Id: 4.7.1.dev.12799dvd77e172e8a2eba0f4041ec1471.false
Date: Sun, 01 Jun 2023 17:00:00 GMT
Content-Length: 58
{
"id":"x",
"create_at":1713198308869,
"update_at":1713198308869,
"delete_at":0,
"user_id":"x",
"channel_id":"x",
"root_id":"",
"original_id":"",
"participants":null,
"message":"test",
"type":"",
"props":{
"override_username":"webhook",
"override_icon_url":null,
"override_icon_emoji":null,
"webhook_display_name":"test",
"attachments":[
],
"card":null,
"from_webhook":"true"
},
"hashtags":null,
"metadata":{
"embeds":[
{
"type":"message_attachment"
}
],
"files":[
],
"reactions":[
]
},
"file_ids":null,
"has_reactions":false,
"edit_at":0,
"is_pinned":false,
"remote_id":null,
"reply_count":0,
"pending_post_id":null,
"is_following":false
}
Si desea tener el mismo formato de respuesta que Slack:
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
debe agregar ?slack_return_format=true
a la URL del webhook.
La indicación BOT se añade junto al nombre de usuario en kChat por razones de seguridad.
Parámetros
Además del campo text
, aquí está la lista completa de los parámetros soportados:
Parámetro | Descripción | Requerido |
---|---|---|
text | Mensaje en formato Markdown para mostrar en la publicación. Para activar notificaciones, usar “@<username>”, “@channel” y “@here” como lo haría en otros mensajes de kChat. | Si attachments no está definido, sí |
channel | Reemplaza el canal en el que se publica el mensaje. Usar el nombre del canal, no el nombre de visualización, usar p. ej. “town-square”, no “Place de la ville”. Usar "@" seguido de un nombre de usuario para enviar un mensaje directo. Por defecto, usa el canal definido al crear el webhook. El webhook puede publicar en cualquier canal público y privado donde esté presente el creador del webhook. Las publicaciones en los mensajes directos aparecerán en el mensaje directo entre el usuario objetivo y el creador del webhook. | No |
username | Reemplaza el nombre de usuario bajo el cual se publica el mensaje. Por defecto, usa el nombre de usuario definido durante la creación del webhook; si no se ha definido ningún nombre de usuario durante la creación, usa webhook . | No |
icon_url | Reemplaza la imagen de perfil con la que se publica el mensaje. Por defecto, usa la URL definida durante la creación del webhook; si no se ha definido ningún icono durante la creación, se muestra el icono estándar del webhook () El parámetro de configuración Permitir que las integraciones reemplacen las icónicas de foto de perfil debe estar activado para que el reemplazo del icono surta efecto. | No |
icon_emoji | Reemplaza la imagen de perfil y el parámetro icon_url .Por defecto, nada está definido durante la creación del webhook. El valor esperado es el nombre de un emoji tal como se escribe en un mensaje, con o sin dos puntos ( : ).El parámetro de configuración Permitir que las integraciones reemplacen las icónicas de foto de perfil debe estar activado para que el reemplazo surta efecto. | No |
attachments | Adjuntos de mensaje utilizados para opciones de formato más ricas. | Si text no está definido, sí |
type | Define la type de publicación, principalmente para su uso por complementos.Si no está vacío, debe comenzar con " custom_ ". | No |
Ejemplo de código con parámetros
Aquí es cómo generar un mensaje más completo con parámetros, algunos de los cuales pueden reemplazar parámetros ya establecidos durante la creación del webhook (nombre de usuario, canal preferido, avatar...) como se indica en la tabla anterior:
POST /hooks/xxx-clé-générée-xxx HTTP/1.1
Host: votre-serveur-kchat.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": "#### Résultats des tests pour le 27 juillet 2023
@channel veuillez vérifier les tests échoués.
| Composant | Tests effectués | Tests échoués |
|:-----------|:-----------:|:-----------------------------------------------|
| Serveur | 948 | 0 |
| Client Web | 123 | 2 [(voir détails)](https://linktologs) |
| Client iOS | 78 | 3 [(voir détails)](https://linktologs) |"
}
Esto provocará la visualización de este mensaje en el canal kchatemp de la organización: