Mit den benutzerdefinierten Einbindungsfunktionen in Synology Chat können Sie eingehende und ausgehende Webhooks, Bots und Schrägstrich-Befehle konfigurieren. Klicken Sie auf das Symbol Profilfoto oben rechts und wählen Sie Einbindung, um diese Funktionen zu aktivieren.
Ein eingehender Webhook postet Nachrichten von externen Quellen in den Chat. Er nutzt allgemeine HTTP-Anfragen mit JSON-Nutzdaten, neben anderen optionalen Einstellungen.
Es gibt zwei Methoden, um Daten an die Webhook-URL zu senden:
payload
in einer POST-Anfrage.Die JSON-Nutzdaten können eine Eigenschaft text
beinhalten, die im zugewiesenen Kanal gepostet wird. Beispiel:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message."}
Um einen Link hinzuzufügen, können Sie den Link direkt in den text
einfügen. Beispiel:
payload={"text": "<https://www.synology.com>"}
Ein weiteres Beispiel:
payload={"text": "Check this!! <https://www.synology.com|Click here> for details!"}
Sie können auch eine Datei in Ihre eingehenden Posts hochladen. Um eine Datei hochzuladen, müssen Ihre JSON-Nutzdaten eine Eigenschaft file_url
enthalten, ebenso wie eine optionale Texteigenschaft. Wir werden Ihre URL herunterladen und als Upload-Post mit einer Nutzerdatei behandeln. Beispiel:
payload={"text": "a fun image", "file_url": "http://imgur.com/xxxxx"}
Ausgehende Webhooks suchen nach Auslöseworten in Chat-Nachrichten. Diese Auslöseworte senden relevante Daten an eine externe URL. Ausgehende Webhooks können nur ausgelöst werden wenn eine oder beide der folgenden Bedingungen erfüllt sind:
Wenn der Kanal angezeigt wird, sind die Auslöseworte optional. Auslöseworte sind erforderlich, wenn kein Kanal ausgewählt wurde. Wenn zwei Bedingungen beide definiert sind, erfolgt der ausgehende Webhook nur, wenn zwei Bedingungen gleichzeitig erfüllt sind.
Wenn eine erhaltene Nachricht einem Auslöser entspricht, wird ein POST an die zugewiesene URL gesendet. Die Datenfelder sind nachfolgend beschrieben:
token: bot token channel_id channel_name user_id username post_id timestamp text trigger_word: which trigger word is matched
Wenn das externe Ziel im Chat-Kanal antworten möchte, muss die JSON im Text der Antwort zurückgesendet werden. Die unterstützten Felder sind dieselben wie bei einer eingehenden Webhook JSON.
Mit Schrägstrich-Befehlen können Sie ganz einfach ausgehende Webhooks auslösen, indem Sie „/“ in das Textfeld eingeben. Antworten sind nur für Sie sichtbar, so dass andere Benutzer Nachrichten vermeiden können, die irrelevant für sie sind.
Schrägstrich-Befehle können unter Integration angepasst werden. Sie können auf die Integration zugreifen, indem Sie in der oberen rechten Ecke auf Ihr Profilfoto klicken.
Geben Sie einen Schrägstrich „/“ in das Textfeld eines beliebigen Kanals oder einer Konversation ein und es wird eine Liste von Befehlen angezeigt, aus der Sie und Ihre Teams auswählen können. Wenn ich z. B. „/“ eingebe und „/lunch“ wähle, gibt mir der Webhook eine Empfehlung für eine Mahlzeit.
Ein Bot kann eine Einzelkonversation mit Ihnen beginnen, von externen Quellen gesendete Nachrichten posten und Nachrichten abhören, die vom Benutzer einer Konversation gesendet wurden.
Wenn Sie die Option Aus Bot-Liste ausblenden aktivieren, können Benutzer diesen Bot nicht aus der Bot-Liste anzeigen und hinzufügen.
Nachdem Sie eine ausgehende URL in das Konfigurationsfeld des Bots eingegeben haben, sendet der Chat eine Anfrage an die URL, wenn ein Benutzer eine Nachricht an den Bot sendet. Die Datenfelder sind nachstehend beschrieben:
token: bot token user_id username post_id timestamp text
Sie können Empfänger und Nachrichten über den Parameter "payload" in einer POST-Anfrage zuweisen. Beispiel:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message.", "user_ids": [5] }
Das bedeutet, dass die Nachricht First line of message to post in the channel.\nAlso you can have a second line of message.> an den Benutzer mit der "user_id 5" gesendet wurde.
Bei einer Konversation mit einem Bot kann der Bot Texte und Dateien senden und spezielle Daten (Anhang) sowie interaktive Objekte (Aktion) anhängen. Zurzeit werden Schaltflächen für interaktive Objekte bereitgestellt. Sie können die Nachricht hinzufügen, die Sie im Feld "Anhänge" in den Nutzdaten anhängen möchten. Beispiel:
attachments: array of attachment object
attachment object: { callback_id: string[2], which refers to the string self-defined by the bot service. This will be sent to you when a user triggers an event attached with data. text: string actions: array of action object }
action object: { type: "button" text: string name: string value: string style: string, where green, grey, red, orange, blue, and teal are the feasible values }
Beispiel:
payload={"text": "Hello World", "user_ids": [3], "attachments":
[{"callback_id": "abc", "text": "attachment", "actions":
[{"type": "button", "name": "resp", "value": "ok", "text": "OK", "style": "green"}]}]}
Der Chat sendet eine Anfrage an die ausgehende URL des Bots, wenn ein Benutzer ein interaktives Objekt auslöst. Die Datenfelder sind nachfolgend beschrieben:
payload = { "actions": array of action object, which refers to the action triggered by the user "callback_id": string, which refers to the callback_id of the attachment where the action triggered by the user is located "post_id" "token" "user": { "user_id" "username" } }
Nachdem ein Bot eine Anfrage erhält, kann er die JSON-Daten zurücksenden, um den ursprünglichen POST zu überarbeiten. Mit Ausnahme von user_id, das unterstützte Format entspricht den Nutzdaten.
Beispiel:
{"text": "Got your response!"}
Sie können eine Anfrage an die nachfolgende URL senden: [Chat URL]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
und nachstehende Parameter einfügen: token = bot token
Sie können eine Anfrage an die nachfolgende URL senden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
und nachstehende Parameter einfügen: token = bot token
Sie können eine Anfrage an die nachfolgende URL senden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
und nachstehende Parameter einfügen: token = bot token channel_id = channel_id is intended for browsing next_count = the number of messages that comes after a post prev_count = the number of messages that comes before a post, with 1 as the minimum (optional)post_id = post_id is intended for browsing, the unfilled post_id refers to the newest message
Sie können eine Anfrage an die nachfolgende URL senden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"
und nachstehende Parameter einfügen: token = bot token post_id = post_id is intended for browsing