Fuente de datos: Telegram
1Presentación
Telegram permite crear "espacios" de comunicación a los que se pueden enviar notificaciones.
Si has configurado correctamente los parámetros de conexión de Telegram, Temma crea automáticamente un objeto de tipo \Temma\Datasources\Telegram, que puedes usar para enviar mensajes. Por convención, supondremos que has nombrado esta conexión telegram en el archivo etc/temma.php (consulta la documentación de configuración).
En los controladores, la conexión a Telegram está entonces disponible de la siguiente forma:
$tg = $this->telegram;
En los demás objetos gestionados por el componente de inyección de dependencias, la conexión a Telegram es accesible de la siguiente forma:
$tg = $loader->dataSources->telegram;
$tg = $loader->dataSources['telegram'];
2Configuración
Para enviar mensajes en Telegram, primero debes crear un bot. Para ello, busca al usuario BotFather, y envía el mensaje /newbot. Responde a sus preguntas y recibirás un token de API.
En el archivo etc/temma.php (consulta la documentación de configuración), puedes entonces declarar el DSN (Data Source Name) usado para conectarte a Telegram.
El DSN de conexión a Telegram se escribe de la siguiente forma: telegram://API_TOKEN
Para enviar mensajes, necesitarás un identificador de chat correspondiente a la conversación o canal donde quieres que se envíen los mensajes:
-
Para una conversación privada, envía un mensaje a tu bot y luego ejecuta el siguiente comando:
(sustituyendo <TOKEN> por el token que recibiste)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
En el flujo JSON devuelto, busca una sección como "chat": {"id": 123456789} para recuperar el identificador de chat. -
Para una conversación de grupo, añade el bot al grupo y luego ejecuta el siguiente comando:
(sustituyendo <TOKEN> por el token que recibiste)curl -s https://api.telegram.org/bot<TOKEN>/getUpdates
En el flujo JSON devuelto, busca una sección como "chat": {"id": -123456789} (número negativo) para recuperar el identificador de chat. - Para enviar mensajes en un canal, añade el bot al canal como administrador. El identificador de chat es el nombre del canal (con el formato @mi_canal).
3Contenido de la notificación
Las notificaciones pueden contener texto sin formato o código HTML simplificado.
4Llamadas unificadas
4.1Acceso tipo array
// envía un mensaje simple
$tg['123456789'] = "Mensaje a enviar";
// mensaje con HTML
$tg['@mi_canal'] = 'Texto con <i>formato</i> <b>simple</b>.';
4.2Método avanzado
// envía un mensaje simple
$tg->set('@mi_canal', "Mensaje a enviar");
// notificación enriquecida
$tg->set('123456789', 'Texto con <i>formato</i> <b>simple</b>.');