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 einer JSON-Nutzlast, neben anderen optionalen Einstellungen.
Es gibt zwei Methoden, um Daten an die Webhook-URL zu senden:
payload
in einer POST-Anfrage.Die JSON-Nutzlast kann eine Eigenschaft text
enthalten, 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, muss Ihre JSON-Nutzlast 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 user_id 5 geschickt 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 „attachments“ in der Nutzlast 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. Ausgenommen user_id
entspricht das unterstützte Format dem von „payload“.
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