Utilizzo dell'integrazione in Synology Chat

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.

Webhook in entrata

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 messaggi:

Per inviare dati all'URL webhook, sono disponibili due metodi:

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 collegamenti:

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!"}

Per caricare i file:

È 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"}

Nota:

Webhook in uscita

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.

Dati in uscita:

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

Risposta:

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.

Comandi barra

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.

Per creare un comando barra:

I comandi barra possono essere personalizzati in Integrazione. È possibile accedere a Integrazione facendo clic su Foto profilo nell'angolo in alto a destra.

Per usare un comando barra:

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 "/lunch", il webhook consiglierà di un pasto.

Bot

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.

Per impedire agli utenti di avviare una conversazione attiva con i bot:

Spuntando l'opzione Nascondi dall'elenco bot gli utenti non potranno visualizzare e aggiungere questo bot dall'elenco bot.

Per inviare dati in uscita:

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

Nota:

Per inviare messaggi in entrata:

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 indica 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 5.

Per allegare i messaggi ai messaggi in entrata:

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 campo "attachments" 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"}]}]}

Per ricevere dati interattivi attivati dagli utenti:

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 una richiesta, il bot può reinviare i dati JSON per rivedere il POST originale. Tranne che per user_id, il formato supportato è uguale a quello del payload.

Ad esempio:

{"text": "Got your response!"}

Per elencare le conversazioni visibili da un bot:

È 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

Per elencare gli utenti visibili da un bot:

È 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

Per elencare i messaggi visibili da un bot

È 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

Per scaricare i dati di file:

È 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

Nota: