1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Connettere applicazioni esterne a kChat
Questa guida ti permette di gestire applicazioni esterne con kChat utilizzando webhook.
Premessa
- Un webhook è un metodo che permette a un'applicazione di essere informata immediatamente quando si verifica un evento particolare in un'altra applicazione, piuttosto che chiedere costantemente a quest'ultima se è successo qualcosa di nuovo (cosa che si chiama "polling").
- Webhook in uscita: kChat invia informazioni ad altre app quando si verifica un evento in kChat.
- Webhook in entrata: kChat riceve informazioni da altre app per attivare azioni in kChat.
- Non è possibile importare la cronologia delle conversazioni da un'altra applicazione (Slack, Teams, Jabber, ecc.) o da un'altra Organizzazione.
Accedere all'interfaccia webhook di kChat
Prerequisiti
- Non essere un utente esterno (questo non vedrĂ il menu Integrazioni).
Per configurare un webhook, trovare applicazioni e integrazioni auto-hosted o di terze parti:
- Clicca qui‍ per accedere all'app Web kChat (servizio online kchat.infomaniak.com) o apri l'app desktop kChat (applicazione desktop su macOS / Windows / Linux).
- Clicca sull'icona Nuovo ‍ accanto al nome della tua organizzazione kChat.
- Fai clic su Integrazioni.
- Accedi alle categorie:
Esempio di integrazione
Creare un semplice webhook in entrata
Per fare questo:
- Fai clic sulla categoria Webhook in entrata.
- Fai clic sul pulsante blu Aggiungi webhook entranti:
- Aggiungi un nome e una descrizione (max 500 caratteri) per il webhook.
- Seleziona il canale che riceverĂ i messaggi
- Salva per ottenere l'URL (da non divulgare pubblicamente); esempio “
https://your-server-kchat.xyz/hooks/xxx-key-generated-xxx
”.
Utilizzo del webhook
Sull'applicazione che deve pubblicare su kChat:
Modifica il codice seguente in base all'URL ottenuta:
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." }
- Utilizzare eventualmente la stessa richiesta ma in
curl
(per testare da un'applicazione di tipoTerminal
(interfaccia a riga di comando,CLI /Command Line Interface
) sul tuo 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
Se non è specificato alcun header Tipo di contenuto non è definito, il corpo della richiesta deve essere preceduto da TRANSLATION_ERROR così:
payload={"text": "Hello, text1 Text2."}
Una richiesta riuscita riceverĂ la seguente risposta:
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
}
Se desideri ottenere lo stesso formato di risposta di 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
devi aggiungere ?slack_return_format=true
all'URL del webhook.
Parametri
Oltre al campo text
, ecco l'elenco completo dei parametri supportati:
Parametro | Descrizione | Obbligatorio |
---|---|---|
text | Messaggio in formato Markdown da visualizzare nella pubblicazione. Per attivare le notifiche, utilizzare “@<username>”, “@channel” e “@here” come fareste in altri messaggi kChat. | Se attachments non è definito, sì |
channel | Sostituisce il canale in cui viene inviato il messaggio. Utilizzare il nome del canale, non il nome visualizzato, ad esempio “town-square”, non “Place de la ville”. Utilizzare "@" seguito da un nome utente per inviare un messaggio diretto. Per impostazione predefinita, utilizza il canale definito durante la creazione del webhook. Il webhook può postare in qualsiasi canale pubblico e privato in cui il creatore del webhook è presente. Le pubblicazioni nei messaggi diretti appariranno nel messaggio diretto tra l'utente target e il creatore del webhook. | No |
username | Sostituisce il nome utente con cui viene inviato il messaggio. Di default, utilizza il nome utente definito durante la creazione del webhook; se non è stato definito alcun nome utente durante la creazione, utilizza webhook .Il parametro di configurazione Consentire alle integrazioni di sostituire i nomi utente deve essere attivato per rendere efficace la sostituzione del nome utente. | No |
icon_url | Sostituisce l'immagine del profilo con cui viene inviato il messaggio. Di default, utilizza l'URL definita durante la creazione del webhook; se nessuna icona è stata definita durante la creazione, viene visualizzata l'icona standard del webhook (‍) viene visualizzata. Il parametro di configurazione Consentire alle integrazioni di sostituire le icone delle foto del profilo deve essere attivato per rendere efficace la sostituzione dell'icona. | No |
icon_emoji | Sostituisce l'immagine del profilo e il parametro icon_url .Per impostazione predefinita, nulla è definito durante la creazione del webhook. Il valore atteso è il nome di un emoji come viene digitato in un messaggio, con o senza due punti ( : ).Il parametro di configurazione Consentire alle integrazioni di sostituire le icone delle foto del profilo deve essere attivato affinché la sostituzione abbia effetto. | No |
attachments | Allegati al messaggio utilizzati per opzioni di formattazione più ricche. | Se text non è definito, sì |
type | Definisce il type di pubblicazione, principalmente per l'uso da parte dei plugin.Se non è vuoto, deve iniziare con custom_ ". | No |
Esempio di codice con parametri
Ecco come generare un messaggio piĂą completo con dei parametri, alcuni dei quali possono sostituire i parametri giĂ stabiliti durante la creazione del webhook (nome utente, canale preferito, avatar...) come indicato nella tabella sopra:
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) |"
}
Questo farĂ apparire il messaggio nel canale kchatemp dell'organizzazione :