Contenido
En Simla.com es posible gestionar las reacciones a los mensajes de chat. Las reacciones se representan mediante emojis y pueden ser añadidas, actualizadas o eliminadas tanto por los usuarios del sistema como por los clientes desde los módulos de transporte.
Para los módulos de transporte, la compatibilidad con reacciones se implementa mediante métodos REST de la Transport API. Los eventos relacionados con las reacciones se transmiten mediante llamadas webhook.
Actualmente están disponibles las siguientes operaciones:
- Añadir reacciones: permite marcar un mensaje con el emoji seleccionado.
- Eliminar reacciones: permite eliminar una reacción establecida anteriormente.
- Configurar las reacciones permitidas: permite gestionar la lista de emojis disponibles.
- Recibir notificaciones webhook: permite recibir eventos sobre la adición, sustitución o eliminación de reacciones.
Métodos de la API
Añadir una reacción
POST /messages/reaction
Descripción
Permite añadir una reacción a un mensaje del chat.
Cuerpo de la solicitud
{
"message": {
"external_id": "7151734053_563"
},
"channel": 71,
"reaction": "🎄"
}
Parámetros
message.external_id(cadena, obligatorio): identificador externo del mensaje.channel(número, obligatorio): identificador del canal.reaction(cadena, obligatorio): emoji que se añade como reacción.
Eliminar una reacción
DELETE /messages/reaction
Descripción
Permite eliminar una reacción establecida anteriormente. Este método se utiliza únicamente para eliminar reacciones de clientes desde los módulos de transporte.
Cuerpo de la solicitud
{
"message": {
"external_id": "7151734053_563"
},
"channel": 71,
"reaction": "🎄"
}
Parámetros
message.external_id(cadena, obligatorio): identificador externo del mensaje.channel(número, obligatorio): identificador del canal.reaction(cadena, opcional): si se proporciona, se comprobará que coincida con la reacción que se va a eliminar. Si no se proporciona, se eliminará la primera reacción del cliente que se encuentre.
Configurar el canal para admitir reacciones en chats
Para admitir reacciones en un canal, es necesario especificar las opciones correspondientes en el objeto de configuración. La configuración del canal se actualiza mediante el método PUT /channels/{channel_id}.
Para cada tipo de mensaje —text, product, order, image y file— es necesario indicar el tipo de compatibilidad con reacciones. El valor both significa que el transporte admite tanto el envío como la recepción de reacciones en el canal. El valor receive admite únicamente la recepción de reacciones y send, únicamente su envío.
El siguiente ejemplo muestra la configuración necesaria para admitir reacciones. Los demás campos de configuración se han omitido:
{
"settings": {
"text": {
"reaction": "both"
},
"product": {
"reaction": "both"
},
"order": {
"reaction": "both"
},
"image": {
"reaction": "both"
},
"file": {
"reaction": "both"
},
"reactions": {
"dictionary": ["👍", "👎", "❤", "🔥", "🎄"],
"max_count": 1
}
}
}
Parámetros
reactions.dictionary(array): lista de emojis que los usuarios del sistema pueden añadir. Los emojis deben cumplir el estándar Unicode.reactions.max_count(número): número máximo de reacciones por mensaje que se pueden añadir desde el sistema. Este ajuste no afecta al número de reacciones añadidas desde los módulos de transporte.
Llamadas webhook
Descripción de los campos
new_reaction: nuevo emoji de reacción añadido por el usuario. El campo solo está disponible cuando se añade o sustituye una reacción.old_reaction: emoji de la reacción anterior que se ha sustituido o eliminado. El campo solo está disponible cuando se elimina o sustituye una reacción.all_reactions: array de todas las reacciones actuales añadidas por el gestor del sistema.
Adición de una reacción
{
"type": "reaction_add",
"meta": {
"timestamp": 1739958066
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"new_reaction": "🎄",
"all_reactions": [{ "reaction": "🎄" }]
}
}
Sustitución de una reacción
{
"type": "reaction_add",
"meta": {
"timestamp": 1739958180
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"new_reaction": "👀",
"old_reaction": "🎄",
"all_reactions": [{ "reaction": "👀" }]
}
}
Eliminación de una reacción
{
"type": "reaction_delete",
"meta": {
"timestamp": 1739958235
},
"data": {
"external_user_id": "99883965",
"external_chat_id": "99883965",
"channel_id": 71,
"external_message_id": "7151734053_560",
"old_reaction": "👀",
"all_reactions": []
}
}