1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Externe Anwendungen mit kChat verbinden
Dieser Leitfaden hilft Ihnen, externe Anwendungen mit kChat mithilfe von Webhooks zu verwalten.
Vorwort
- Ein Webhook ist eine Methode, mit der eine Anwendung sofort benachrichtigt wird, wenn ein bestimmtes Ereignis in einer anderen Anwendung auftritt, anstatt diese Anwendung ständig zu fragen, ob etwas Neues passiert ist ("Polling").
- Ausgehender Webhook: kChat ĂĽbermittelt Informationen an andere Apps, wenn ein Ereignis in kChat auftritt.
- Eingehender Webhook: kChat empfängt Informationen von anderen Apps, um Aktionen in kChat auszulösen.
- Es ist nicht möglich, den Verlauf von Gesprächen aus einer anderen Anwendung (Slack, Teams, Jabber, etc.) oder aus einer anderen Organisation zu importieren.
âš Max. Anzahl der eingehenden/ausgehenden Webhooks:
| kSuite | kostenlos | 1 / 1 |
| Standard | 20 / 20 | |
| Business | unbegrenzt | |
| Enterprise | unbegrenzt | |
Auf die kChat-Webhook-Schnittstelle zugreifen
Voraussetzungen
- Kein externer Benutzer sein (dieser sieht das MenĂĽ nicht Integrationen).
Um einen Webhook zu konfigurieren, finden Sie selbstgehostete oder Drittanbieter-Anwendungen und -Integrationen:
- Hier klicken‍‍ um auf die Web-App kChat (Online-Dienst ksuite.infomaniak.com/kchat) zuzugreifen oder öffnen Sie die Desktop-App kChat (Desktop-Anwendung auf macOS / Windows / Linux).
- Klicken Sie auf das Symbol Neu ‍ neben dem Namen Ihrer kChat-Organisation.
- Klicken Sie auf Integrationen:

- Greifen Sie auf die Kategorien zu:

Spezifische Anleitungen
Beispiele fĂĽr die Integration in kChat:
- Calendar Infomaniak: Erinnerung an ein Ereignis in kChat anzeigen
- Anwendung n8n: Senden einer Nachricht in kChat auslösen
Anleitungen fĂĽr andere Verwendungen
Um einen eingehenden Webhook zu erstellen (um ein externes Ereignis in kChat anzuzeigen):
- Klicken Sie auf die Kategorie Eingehende Webhooks.
- Klicken Sie auf die blaue Schaltfläche Eingehende Webhooks hinzufügen:

- FĂĽgen Sie einen Namen und eine Beschreibung fĂĽr den Webhook hinzu.
- Wählen Sie den Kanal aus, der die Nachrichten erhält.
- Klicken Sie auf die Schaltfläche zum Speichern:

- Die URL, die Sie für Ihre Entwicklungen speichern müssen, wird angezeigt (nicht öffentlich weitergeben); Beispiel: „
https://your-server-kchat.xyz/hooks/xxx-key-generated-xxx“:
Verwendung des Webhooks
Schnelles Beispiel
- Ein genauer Befehl
curl(weiter unten detailliert) wird in ein Terminal eingegeben. - Der Befehl enthält die im Punkt 6 oben erhaltene URL.
- Der Befehl hat zur Folge, dass eine Nachricht im im Punkt 4 oben angegebenen Kanal gepostet wird:

Details
In der Anwendung, die in kChat posten soll:
Passen Sie den folgenden Code entsprechend der in kChat erhaltenen URL an:
POST /hooks/xxx-key-generated-xxx HTTP/1.1 Host: your-server-kchat.xyz Content-Type: application/json Content-Length: 63 { "text": "Hello, text1\nText2." }Verwenden Sie gegebenenfalls dieselbe Anfrage, aber in
curl(um von einer Anwendung vom TypTerminal(Kommandoschnittstelle,CLI / Command Line Interface) auf Ihrem Gerät zu testen), wie im obigen Bildbeispiel:curl -i -X POST -H 'Content-Type: application/json' -d '{"text": "Hello, text1\nText2."}' https://your-server-kchat.xyz/hooks/xxx-key-generated-xxx
Die Kennzeichnung BOT wird neben dem Benutzernamen auf kChat aus SicherheitsgrĂĽnden hinzugefĂĽgt.
Wenn kein Header Content-Type definiert ist, muss der Anfragekörper mit payload= beginnen, wie folgt:
payload={"text": "Hello, text1\nText2."}Eine erfolgreiche Anfrage erhält die folgende Antwort:
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
}Wenn Sie dasselbe Antwortformat wie Slack haben möchten:
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
okmĂĽssen Sie ?slack_return_format=true zur Webhook-URL hinzufĂĽgen.
Parameter
Zusätzlich zum Feld text finden Sie hier die vollständige Liste der unterstützten Parameter:
| Parameter | Beschreibung | Erforderlich |
|---|---|---|
text | Nachricht im Markdown-Format, die in der Veröffentlichung angezeigt werden soll. Um Benachrichtigungen auszulösen, verwenden Sie „@<username>“, „@channel“ und „@here“, wie Sie es in anderen kChat-Nachrichten tun würden. | Wenn attachments nicht definiert ist, ja |
channel | Ersetzt den Kanal, in dem die Nachricht gepostet wird. Verwenden Sie den Kanalnamen, nicht den Anzeigenamen, verwenden Sie beispielsweise „town-square“, nicht „Place de la ville“. Verwenden Sie „@“ gefolgt von einem Benutzernamen, um eine Direktnachricht zu senden. Standardmäßig wird der beim Erstellen des Webhooks definierte Kanal verwendet. Der Webhook kann in jedem öffentlichen und privaten Kanal posten, in dem sich der Ersteller des Webhooks befindet. Veröffentlichungen in Direktnachrichten erscheinen in der Direktnachricht zwischen dem Zielbenutzer und dem Ersteller des Webhooks. | Nein |
username | Ersetzt den Benutzernamen, unter dem die Nachricht gepostet wird. Standardmäßig wird der beim Erstellen des Webhooks definierte Benutzername verwendet; wenn beim Erstellen kein Benutzername definiert wurde, wird webhook. | Nein |
icon_url | Ersetzt das Profilbild, mit dem die Nachricht gepostet wird. Standardmäßig wird die beim Erstellen des Webhooks definierte URL verwendet; wenn beim Erstellen kein Symbol definiert wurde, wird das Standard-Webhook-Symbol (‍) angezeigt. Der Konfigurationsparameter Erlauben Sie Integrationen, Profilbildsymbole zu ersetzen muss aktiviert sein, damit das Ersetzen des Symbols wirksam wird. | Nein |
icon_emoji | Ersetzt das Profilbild und den Parameter icon_url.Standardmäßig ist beim Erstellen des Webhooks nichts definiert. Der erwartete Wert ist der Name eines Emojis, wie er in einer Nachricht eingegeben wird, mit oder ohne Doppelpunkt ( :).Der Konfigurationsparameter Erlauben Sie Integrationen, Profilbildsymbole zu ersetzen muss aktiviert sein, damit der Ersatz wirkt. | Nein |
attachments | Anlagen zur Nachricht, die fĂĽr reichhaltigere Formatierungsoptionen verwendet werden. | Wenn text nicht definiert ist, ja |
type | Legt das type der Veröffentlichung fest, hauptsächlich für die Verwendung durch Plugins.Wenn es nicht leer ist, muss es mit " beginnen. custom_". | Nein |
Codebeispiel mit Parametern
So können Sie eine umfassendere Nachricht mit Parametern erstellen, wobei einige Parameter bereits beim Erstellen des Webhooks festgelegte Parameter (Benutzername, bevorzugter Kanal, Avatar usw.) ersetzen können, wie in der obigen Tabelle angegeben:
curl -i -X POST -H 'Content-Type: application/json' \
-d '{
"username": "System Monitor",
"icon_url": "https://cdn-icons-png.flaticon.com/512/5971/5971593.png",
"text": "### System Status Report\nEnvironment: PRODUCTION\nStatus: SUCCESSFUL\n\n---\n\n| Component | Version | Build ID | Status |\n|:----------|:-------:|:---------|:-------|\n| API-Core | 2.4.1 | #88421 | OK |\n| Web-UI | 1.9.0 | #88425 | OK |\n| Database | 14.5 | N/A | OK |\n\n---\n\n**Commit Reference:**\n`git-ref: a7f8e9c21b` \n\n**Summary:**\nAll automated integration tests passed successfully. No manual intervention is required. Please contact the DevOps team for further details regarding this release."
}' \
https://faq-infomaniakaruh.kchat.infomaniak.com/hooks/019c23e9-a9a8-735c-b6ce-0a69df63aaf0Ergebnis eines ähnlichen Beispiels in Bildform: