Agregar reacciones (emoji) de Slack a Mattermost
Lastmod: 2025-01-21
Published: 2022-09-29

Como el período de almacenamiento de registros de Slack se ha reducido a 90 días, los registros de Slack están desapareciendo rápidamente. Este es un recordatorio sobre cómo copiar emojis personalizados (reacciones) de Slack a Mattermost al implementar Mattermost.

Extracción de reacciones de Slack

Inicialmente, pensé en usar la API de Slack para extraer, pero resulta que es muy fácil descargar usando la extensión de Chrome Slack Custom Emoji ManagerSlack.

Solo hay que instalar la extensión de Chrome y acceder a https://<tu_Slack>.slack.com/emoji y presionar “Descargar todos los emojis”.

Importar en Mattermost

Voy a registrar todo usando curl a través de la API. Un punto a tener en cuenta es que mientras que Slack permite nombres de reacciones en japonés, Mattermost no puede registrar nombres multibyte, por lo que si hay algún nombre en japonés en las reacciones descargadas, deberás corregirlo de antemano.

Crear un bot para usar la API y obtener un token de acceso

  1. Selecciona “Funciones de integración” :
  2. Selecciona “Cuenta de Bot”
  3. Presiona “Agregar cuenta de Bot”
  4. Crea la cuenta
    Asigna el rol de “Administrador del sistema”.
  5. Se generará un token, así que asegúrate de recordarlo

Obtener el ID del usuario del Bot

Necesitas especificar el ID del usuario del bot al registrar los emojis, así que obtén el ID del usuario del bot usando la API.

$ TOKEN="TOKEN obtenido anteriormente"
$ CREATE_ID=$(curl -s -X GET -H "Authorization: Bearer ${TOKEN}" https://<URL de Mattermost>/api/v4/users/me | jq -r .id)
$ echo $CREATE_ID

Deberías tener el ID del usuario del Bot almacenado en la variable CREATE_ID.

Registrar en bloque usando el token de API y el BotID

Coloca los emojis descargados en un directorio y ejecútalo.

$ TOKEN="TOKEN obtenido anteriormente"
$ CREATE_ID="ID del Bot obtenido anteriormente"
$ for file in $(ls)
do
    name=$(echo $file | cut -d . -f 1)

    curl -X POST -H "Authorization: Bearer ${TOKEN}" \
             -H "Content-Type: multipart/form-data" \
             -F "emoji={\"name\":\"${name}\",\"creator_id\":\"${CREATE_ID}\"}" -F "image=@./${file}" \
             https://<URL de Mattermost>/api/v4/emoji
done

De esta manera, se registrarán como emojis según el nombre del archivo.