1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Conectar aplicaciones externas a kChat
Esta guía le permite acceder a la gestión de aplicaciones externas para kChat.
Requisitos previos
- No ser un usuario externo (este no verá el menú Integraciones)
Acceso a la interfaz
Para configurar un webhook, encontrar aplicaciones e integraciones autohospedadas o de terceros:
- abrir la aplicación kChat (en su dispositivo o desde un navegador en la URL kchat.infomaniak.com)
- hacer clic en la flecha a la derecha del nombre de su organización kChat
- hacer clic en Integraciones
- acceder a las categorías:
Ejemplo de integración
Crear un simple webhook entrante
Para ello:
- hacer clic en la categoría Webhooks entrantes
- hacer clic en el botón azul Añadir webhooks entrantes
- añadir un nombre y una descripción (máx. 500 caracteres) para el webhook
- seleccionar el canal que recibirá los mensajes
- guardar para obtener la URL (no divulgar públicamente) del tipo:
https://your-kchat-server.xyz/hooks/xxx-clave-generada-xxx
Uso del webhook
En la aplicación que debe publicar en kChat:
- ajustar el código a continuación según la URL obtenida:
POST /hooks/xxx-clave-generada-xxx HTTP/1.1
Host: your-kchat-server.xyz
Content-Type: application/json
Content-Length: 63
{
"text": "Hola, este es un texto\nEste es otro texto."
} - usar posiblemente la misma solicitud pero en curl (para probar desde una Terminal en macOS p. ej.):
curl -i -X POST -H 'Content-Type: application/json' -d '{"text": "Hola, este es un texto\nEste es otro texto."}' https://your-kchat-server.xyz/hooks/xxx-clave-generada-xxx
Si no se define ningún encabezado Content-Type, el cuerpo de la solicitud debe ir precedido de payload= de esta manera:
payload={"text": "Hola, este es un texto\nEste es otro texto."}
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.
Parámetros
Además del campo text
, aquí está la lista completa de parámetros admitidos:
Parámetro | Descripción | Requerido |
---|---|---|
text | Mensaje en formato Markdown para mostrar en la publicación. Para activar notificaciones, use @<nombre de usuario> , @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. Utilice el nombre del canal, no el nombre para mostrar, use p. ej. town-square , no Plaza de la Ciudad .Use "@" seguido de un nombre de usuario para enviar un mensaje directo. De forma predeterminada, utiliza 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 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. De forma predeterminada, utiliza el nombre de usuario definido al crear el webhook; si no se define ningún nombre de usuario al crearlo, utiliza webhook .El parámetro de configuración Permitir a las integraciones reemplazar los nombres de usuario debe estar activado para que el reemplazo del nombre de usuario tenga efecto. | No |
icon_url | Reemplaza la imagen de perfil con la que se publica el mensaje. De forma predeterminada, utiliza la URL definida al crear el webhook; si no se define ningún icono al crearlo, se mostrará el icono de webhook estándar (). El parámetro de configuración Permitir a las integraciones reemplazar los iconos de foto de perfil debe estar activado para que el reemplazo del icono tenga efecto. | No |
icon_emoji | Reemplaza la imagen de perfil y el parámetro icon_url .De forma predeterminada, no se define nada al crear el 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 a las integraciones reemplazar los iconos de foto de perfil debe estar activado para que el reemplazo tenga efecto. | No |
attachments | Adjuntos al mensaje utilizados para opciones de formato más ricas. | Si text no está definido, sí |
type | Define el tipo de publicación, principalmente para uso por plugins.Si no está vacío, debe comenzar con " custom_ ". | No |
Ejemplo de código con parámetros
Así es como se genera un mensaje más completo con parámetros, algunos de los cuales pueden reemplazar parámetros ya establecidos al crear el webhook (nombre de usuario, canal preferido, avatar...) como se indica en la tabla anterior:
POST /hooks/xxx-clave-generada-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": "#### Resultados de las pruebas para el 27 de julio de 2023\n@channel por favor revisen las pruebas fallidas.\n\n| Componente | Pruebas realizadas | Pruebas fallidas |\n|:-----------|:-----------:|:-----------------------------------------------|\n| Servidor | 948 | 0 |\n| Cliente Web | 123 | 2 [(ver detalles)](https://linktologs) |\n| Cliente iOS | 78 | 3 [(ver detalles)](https://linktologs) |"
}
Esto resultará en la visualización de este mensaje en el canal kchatemp de la organización: