Las funciones de integración personalizada en Synology Chat le permiten configurar webhooks entrantes y salientes, bots y comandos con barra. Haga clic en el icono Foto de perfil, en la parte superior derecha, y seleccione Integración para habilitar estas funciones.
Un webhook entrante publicará mensajes de fuentes externas en Chat. Se beneficia de las solicitudes generales HTTP con una carga útil de JSON, junto a otras configuraciones opcionales.
Existen dos formas de enviar los datos a la URL de webhook:
carga útil
en una solicitud POST.La carga útil de JSON puede incluir una propiedad de texto
, que se publicará en el canal asignado. Por ejemplo:
payload={"text": "Primera línea del mensaje que se va a publicar en el canal\nTambién puede tener una segunda línea del mensaje."}
Para agregar un vínculo, puede introducir su vínculo directamente en el texto
. Por ejemplo:
payload={"text": "<https://www.synology.com>"}
Otro ejemplo:
payload={"text": "Consulte esto. <https://www.synology.com|Haga clic aquí> para obtener más información."}
También puede cargar un archivo en sus publicaciones entrantes. Para cargar un archivo, su carga útil de JSON debe contener una propiedad file_url
, así como una propiedad de texto opcional. Vamos a descargar su URL y tratarla como una publicación de carga de archivo de usuario. Por ejemplo:
payload={"text": "una imagen divertida", "file_url": "http://imgur.com/xxxxx"}
Los webhooks salientes escuchan palabras de activación en los mensajes de Chat. Estas palabras de activación enviarán datos importantes a una URL externa. Los webhooks salientes solo pueden activarse cuando una o ambas de las siguientes condiciones se cumplen:
Si un canal está indicado, las palabras de activación son opcionales. Las palabras de activación son necesarias si no hay ningún canal seleccionado. Sin embargo, si dos condiciones están definidas, el webhook saliente solo se producirá cuando dos condiciones se cumplan al mismo tiempo.
Cuando un mensaje recibido coincide con un activador, se enviará un POST a la URL asignada. Los campos de datos se describen a continuación:
token: token de botchannel_idchannel_nameuser_idusernamepost_idtimestamptextotrigger_word: palabra de activador que debe coincidir
Si el destino externo quiere responder en el canal de Chat, el JSON se tiene que devolver en el cuerpo de la respuesta. Los campos compatibles son los mismos que en un webhook de JSON entrante.
Los comandos con barra le permiten activar fácilmente webhooks de salida escribiendo "/" en el campo de texto. Solo usted podrá visualizar las respuestas, por lo que el resto de usuario puede evitar los mensajes que no sean relevantes para ellos.
Los comandos con barras se pueden personalizar en Integración. Para acceder a Integración, haga clic en su Foto de perfil en la esquina superior derecha.
Escriba la barra invertida "/" en el campo de texto de cualquier canal o conversación y una lista de comandos creada por usted, y se mostrarán sus equipos para que elija entre ellos. Por ejemplo, si escribo "/" y selecciono "/almuerzo", el webhook me recomendará un almuerzo.
Un bot puede iniciar una conversación individual, publicar mensajes enviados desde fuentes externas y escuchar los mensajes enviados por el usuario en una conversación.
Marcar la opción Ocultar de la lista de bot evitará que los usuarios puedan ver y agregar este bot desde la lista de bots.
Después de introducir una dirección URL saliente en el campo de configuración del bot, Chat enviará una solicitud a la dirección URL cuando un usuario envíe un mensaje al bot. Los campos de datos se describen a continuación:
token: token de botuser_idusernamepost_idtimestamptexto
Puede asignar los receptores y los mensajes mediante el parámetro de carga útil en una solicitud de PUBLICACIÓN. Por ejemplo:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message.", "user_ids": [5] }
Esto significa que el mensajeFirst line of message to post in the channel.\nAlso you can have a second line of message.>se ha enviado al usuario con user_id de 5.
En una conversación con un bot, el bot puede enviar mensajes y archivos, así como adjuntar datos especiales (adjuntos) y objetos interactivos (acciones). Actualmente, se ofrecen botones para los objetos interactivos. Puede agregar el mensaje que desea adjuntar al campo de archivos adjuntos en la carga útil. Por ejemplo:
attachments: array of attachment object
attachment object: { callback_id: string[2], which refers to the string self-defined by the bot service. Se le enviará cuando un usuario active un evento con datos adjuntos. 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}
Por ejemplo:
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 enviará una solicitud a la dirección URL saliente del bot cuando un usuario active un objeto interactivo. Los campos de datos se describen a continuación:
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" }}
Tras recibir una solicitud, un bot puede devolver los datos JSON para revisar la publicación original. A excepción deuser_id, el formato compatible es el mismo que el de la carga útil.
Por ejemplo:
{"text": "Got your response!"}
puede enviar una solicitud a la siguiente dirección URL: [Chat URL]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
y puede incorporar el siguiente parámetro: token = token de bot
puede enviar una solicitud a la siguiente dirección URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
y puede incorporar el siguiente parámetro: token = token de bot
puede enviar una solicitud a la siguiente dirección URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
y puede incorporar los siguientes parámetros: token = token de botchannel_id = channel_id está diseñado para la exploraciónnext_count = el número de mensajes que siguen a una publicaciónprev_count = el número de mensajes que preceden a una publicación, con 1 como mínimo(optional)post_id = post_id está diseñado para la exploración, el post_id vacío hace referencia al mensaje más reciente
puede enviar una solicitud a la siguiente dirección URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"
y puede incorporar los siguientes parámetros: token = token de botpost_id = post_id está diseñado para la exploración