En aquest xicotet article explique com he fet una integració per a que si un usuari publica un comentari que es notifique un avís en un projecte d'Slack.
Estic preparant un entorn de formació on-line amb Drupal 8, i el que necessite és que quan un alumne envia una tarea, que es notifique "Tarea finalitzada per l'usuari X" al Slack, i d'aquesta manera serà més fàcil anar corregint ja que hi ha molts temes, tarees i 16 alumnes.
He descarregat el mòdul Slack per a la versió 8.x a https://www.drupal.org/project/slack i l'he instal·lat a Drupal.
A continuació he anat al meu Slack i he instal·lat el mòdul Incomming Webhooks, que és el mòdul que ens permetrà fer POST des de json:
Una vegada instal·lat, caldrà que modifiquem alguns paràmetres bàsics. No té massa complicació, la veritat, jo nomès he hagut de modificar la imatge que vull que es vaja mostrant als missatges autopublicats des de Drupal, el títol del projecte del curs de formació, etc. Pots veure-ho a la següent captura de pantalla:
Ara, a continuació, cal configurar el mòdul a Drupal. Anem a Inici + Administració + Configuració + Slack i configurarem els paràmetres WebHook URL, el canal que vullguem (que comença per #) i l'usuari per defecte. Ací deixe una captura de pantalla:
I ara instal·larem Rules a Drupal (amb les seues dependències), perquè aquest mòdul està configurat per a funcionar amb regles configurades per Rules.
Farem una regla per a que quan es publique un comentari (que serà, al funcionament del curs, l'enviament d'una tarea per part de l'alumne) s'enviarà automàticament una notificació a Slack on dirà que "L'usuari X ha publicat la tarea". Més o menys la pantalla principal del Rules em queda així:
I bé, si has ficat les condicions correctament, ja ho tenim tot configurat.
Ací un exemple d'un comentari de prova per "usuari1" a la plataforma:
I ací veus com queda de moment la notificació automàtica a Slack:
Cal dir que el missatge s'envia en menys de 3 segons. Ara vaig a configurar els avatars dels alumnes i també unes notificacions més detallades.