Le funzioni di integrazione personalizzata in Synology Chat consentono di configurare webhook in entrata e in uscita, bot e comandi slash. Fare clic sull'icona Foto profilo in alto a destra e selezionare Integrazione per abilitare queste funzioni.
Un webhook in entrata pubblicherà messaggi di fonti esterne nella Chat. Sfrutta le richieste HTTP generali con payload JSON, insieme ad altre impostazioni opzionali.
Per inviare dati all'URL webhook, sono disponibili due metodi:
payload
in una richiesta POST.Il payload JSON include una proprietà di text
che sarà pubblicata sul canale assegnato. Ad esempio:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message."}
Per aggiungere un collegamento, inserire il collegamento direttamente nel text
. Ad esempio:
payload={"text": "<https://www.synology.com>"}
Un altro esempio:
payload={"text": "Check this!! <https://www.synology.com|Click here> for details!"}
È possibile caricare un file nei post in entrata. Per caricare un file, il payload JSON deve contenere una proprietà file_url
, oltre a una proprietà di testo opzionale. L'URL verrà scaricato e trattato come un post di caricamento file di un utente. Ad esempio:
payload={"text": "a fun image", "file_url": "http://imgur.com/xxxxx"}
I webhook in uscita rilevano le parole d'ordine nei messaggi Chat. Queste parole d'ordine invieranno i dati rilevanti a un URL esterno. I webhook in uscita possono essere attivati solo quando una o entrambe le condizioni seguenti sono soddisfatte:
Se è indicato un canale, le parole d'ordine sono opzionali. Le parole d'ordine sono necessarie se non è selezionato alcun canale. Tuttavia, se due condizioni sono entrambe definite, il webhook in uscita si verificherà solo quando le due condizioni sono soddisfatte contemporaneamente.
Quando un messaggio ricevuto soddisfa una parola d'ordine, un POST verrà consegnato all'URL assegnato. I campi dei dati sono descritti di seguito:
token: bot token channel_id channel_name user_id username post_id timestamp text trigger_word: which trigger word is matched
Se la destinazione esterna desidera rispondere nel canale Chat, JSON deve essere restituito nel corpo della risposta. I campi supportati sono uguali a un JSON webhook in entrata.
I comandi barra consentono di attivare facilmente i webhook in uscita digitando "/" nel campo del testo. Le risposte saranno visibili solo all'utente, quindi gli altri utenti non visualizzeranno messaggi non importanti per loro.
I comandi barra possono essere personalizzati in Integrazione. È possibile accedere a Integrazione facendo clic su Foto profilo nell'angolo in alto a destra.
Digitare la barra "/" nel campo di testo di qualsiasi canale o conversazione e sarà visualizzato un elenco di comandi creato dall'utente o dal team in cui scegliere. Ad esempio, se si seleziona "/" e si seleziona "/pranzo", il webhook consiglierà di un pasto.
Un bot può avviare una conversazione diretta con l'utente, pubblicare messaggi inviati da fonti esterne e ascoltare i messaggi inviati dall'utente in una conversazione.
Spuntando l'opzione Nascondi dall'elenco bot gli utenti non potranno visualizzare e aggiungere questo bot dall'elenco bot.
Dopo avere inserito un URL in uscita nel campo di configurazione bot, Chat invierà una richiesta all'URL quando un utente invia un messaggio al bot. I campi dati sono descritti di seguito:
token: bot token user_id username post_id timestamp text
Assegnare i riceventi e i messaggi tramite il parametro di payload in una richiesta POST. Ad esempio:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message.", "user_ids": [5] }
Questo significa che il messaggio First line of message to post in the channel.\nAlso you can have a second line of message.> è stato inviato all'utente con user_id di 5.
In una conversazione con un bot, il bot può inviare testi e file e può anche allegare dati speciali (allegato) e oggetti interattivi (azione). Attualmente, i pulsanti sono offerti per oggetti interattivi. È possibile aggiungere il messaggio da allegare nell'apposito capo nel payload. Ad esempio:
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 }
Ad esempio:
payload={"text": "Hello World", "user_ids": [3], "attachments":
[{"callback_id": "abc", "text": "attachment", "actions":
[{"type": "button", "name": "resp", "value": "ok", "text": "OK", "style": "green"}]}]}
Chat invierà una richiesta all'URL in uscita del bot quando un utente attiva un oggetto interattivo. I campi dei dati sono descritti di seguito:
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" } }
Dopo avere ricevuto unan richiesta, il bot può reinviare i dati JSON per rivedere il POST originale. Eccetto per user_id, il formato supportato è uguale a quello del payload.
Ad esempio:
{"text": "Got your response!"}
È possibile inviare una richiesta al seguente URL: [Chat URL]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
e consente di integrare il parametro seguente: token = bot token
È possibile inviare una richiesta al seguente URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
e consente di integrare il parametro seguente: token = bot token
È possibile inviare una richiesta al seguente URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
e consente di integrare i parametri seguenti: 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
È possibile inviare una richiesta al seguente URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"
e consente di integrare i parametri seguenti: token = bot token post_id = post_id is intended for browsing