Fuente de datos: Slack
1Presentación
Slack es un servicio de comunicación colaborativa, que permite a los usuarios intercambiar información tanto mediante comunicaciones puntuales como dentro de canales de comunicación.
Es posible enviar mensajes dentro de un canal de comunicación, para notificar a los usuarios de forma automatizada.
Si has configurado correctamente los parámetros de conexión a Slack, Temma crea automáticamente un objeto de tipo \Temma\Datasources\Slack, con el que puedes enviar notificaciones. Por convención, supondremos que has llamado a esta conexión slack en el archivo etc/temma.php (consulta la documentación de configuración).
En los controladores, la conexión a Slack está entonces disponible escribiendo:
$slack = $this->slack;
En otros objetos gestionados por el componente de inyección de dependencias, la conexión a Slack es accesible escribiendo:
$slack = $loader->dataSources->slack;
$slack = $loader->dataSources['slack'];
2Configuración
Para enviar notificaciones en Slack, primero debes crear una aplicación de Slack y activar los webhooks. Después puedes crear uno o varios webhooks para esa aplicación, cada webhook vinculado a un canal en el que puede publicar mensajes.
En el archivo etc/temma.php (consulta la documentación de configuración), declaras el DSN (Data Source Name) usado para conectarte a Slack.
El DSN usado para conectarse a Slack se puede escribir como slack://WEBHOOK
Con WEBHOOK el valor de la URL del webhook, sin el prefijo https://.
Ejemplo: hooks.slack.com/services/TXXXXXXXX/BYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ
3Contenido de la notificación
Las notificaciones pueden contener texto, que acepta una variante de la sintaxis Markdown.
Las notificaciones también pueden tener "adjuntos" ("attachments"), es decir, bloques que a su vez pueden contener texto, una imagen, un texto de "pie de página", y un texto que se posiciona encima del bloque.
4Llamadas unificadas
4.1Acceso tipo array
// enviar una notificación simple
$slack[''] = "Mensaje para enviar";
// enviar una notificación con formato
$slack[''] = [
'text' => 'Texto de la notificación, con <https://temma.net|un enlace>',
'attachments' => [
[
'pretext' => 'Texto encima del bloque',
'text' => "*negrita* _cursiva_ ~tachado~ `código`",
'image' => "https://site.com/ruta/a/imagen.jpg",
'footer' => "Texto del pie del bloque",
],
'Bloque de texto',
"Otro bloque solo de texto",
[
'image' => "https://site.com/ruta/a/imagen2.jpg",
],
],
];
4.2Método avanzado
// enviar una notificación simple
$slack->set('', "Mensaje para enviar");
// enviar una notificación con formato
$slack->set('', [
'text' => 'Texto principal',
'attachments' => [
'Primer bloque',
'Segundo bloque',
],
]);