Hola, chicos,
¡Buen día!
En esta publicación demostraré cómo integrar la base de datos con el Telegrama y enviar mensajes usando CLR (C#), que es el principal competidor de Whatsapp. Anteriormente, demostré cómo hacer esta misma integración en las publicaciones:
- SQL Server: cómo integrar la base de datos con Slack y enviar mensajes usando Python y sp_execute_external_script
- SQL Server – Cómo integrar la base de datos con Slack y enviar mensajes usando CLR (C#)
Si no sabes o no sabes cómo utilizar el CLR en SQL Server, descubre cómo accediendo al post Introducción a SQL CLR (Common Language Runtime) en SQL Server.
¿Qué es Telegrama?
Para aquellos que no lo saben, el Telegrama es uno de los comunicadores más famosos y utilizados en todo el mundo, el principal competidor de Whatsapp y tiene como objetivo permitir una comunicación rápida, segura y sencilla entre personas de cualquier parte del mundo.
Puedes crear grupos públicos, donde cualquiera puede unirse e interactuar, o grupos privados, donde sólo los miembros del grupo pueden ver los mensajes. Telegram tiene una versión portuguesa, una API abierta que te permite integrarte con tus aplicaciones y enviar mensajes automatizados. Su apariencia es muy similar a Whatsapp y es más seguro, rápido y tiene más funciones que su principal competidor y líder del mercado, pero tiene un número de usuarios mucho menor, especialmente en Brasil.
¿Dónde y cómo puedo utilizar Telegram en mi empresa?
Esta característica es especialmente útil para crear equipos en tu empresa y generar alertas y seguimiento por equipo, donde cada equipo solo recibe alertas relacionadas con sus actividades. Además, puede utilizar grupos abiertos para enviar boletines y notificaciones que sean relevantes para toda la empresa. Todo ello, sin coste alguno y podrás recibirlo por correo electrónico, visualizarlo en la web y en tu smartphone.
Otra forma interesante de utilizar Telegram es enviar el seguimiento de los objetivos de ventas al sector comercial, de modo que los gerentes regionales y locales puedan monitorear el desempeño del equipo de ventas en tiempo real, sin tener que consultar y abrir informes, estén donde estén, incluso fuera de la empresa.
Si su empresa adopta Telegram, el sector de RR.HH. puede utilizar el servicio para enviar mensajes y newsletters a los empleados. Enviar mensajes navideños, un mensaje especial por el cumpleaños del empleado, etc.
De todos modos, la ventaja de Telegram es que se puede enviar de varias formas diferentes (Web, Smartphone), estés donde estés, dentro o fuera de la empresa y supone una gran revolución en la forma en que las personas interactúan con la información.
Puedes utilizar Telegram como herramienta de comunicación, monitoreo y alertas para rutinas de TI, como fallas críticas en trabajos, problemas de respaldo, corrupción de bases de datos, consultas lentas, bloqueos, etc. Cada vez que falla una rutina crítica, se envía un correo electrónico interno y una notificación a través de Telegram, donde llega una notificación Push a mi celular (al igual que Whatsapp) y esté donde esté, estoy consciente de esta falla.
La desventaja de Telegram (y Whatsapp) respecto a Slack y Ryver es que los 2 primeros comunicadores están abiertos al mundo, y pueden usarse para conversaciones personales y privadas con cualquier persona, lo que puede provocar desconcentración y pérdida de concentración. Slack y Ryver están mucho más centrados en el entorno corporativo, hasta el punto de que las personas que interactuarán necesitan una invitación.
Cómo activar la API de Telegram
Para comenzar a utilizar la API de Telegram necesitarás crear un nuevo BOT, que será el encargado de enviar los mensajes. Para ello, inicia sesión en tu cuenta de Telegram, ya sea en la web o en el móvil, e inicia una conversación con el usuario. @BotFather
Haga clic en el botón "Inicio".
Tan pronto como haga clic en el botón "Inicio", el Bot enviará una lista de comandos:
Seleccione la opción /nuevobot y luego elija el nombre del bot y el usuario, como se muestra en la siguiente impresión:
Tenga en cuenta el token generado, ya que será utilizado por el procedimiento almacenado para enviar mensajes.
¿Cómo identificar el canal o ID de usuario?
Al igual que Ryver, la API de Telegram requiere que ingreses el ID del canal en lugar de un nombre fácil de memorizar y usar, como es el caso de la API de Slack. A pesar de ser más seguro, tener que almacenar ID de canales y usuarios es una tarea algo molesta e improductiva.
Aquí demostraré cómo identificar los ID de canales y usuarios para enviar mensajes privados.
Cómo identificar una ID de grupo:
Para identificar el ID de un grupo de Telegram, simplemente acceda a Telegram Web, haga clic en el grupo deseado y observe la URL del grupo. Recuerda que el BOT debe estar invitado al grupo donde quieres enviar el mensaje.

Si no invita al BOT e intenta enviar un mensaje al grupo, verá este mensaje de error:
Error: El servidor remoto devolvió un error: (400) Solicitud incorrecta.
Cuando utiliza el ID de usuario en su llamada a procedimiento almacenado, el valor suele ser NEGATIVO.
Cómo identificar una identificación de usuario:
Identificar el ID de un grupo de Telegram es un poco más complicado, ya que el propio usuario tendrá que enviarte esta información. Para ello tendrá que iniciar una conversación con el BOT @get_id
Luego de iniciar la conversación, el BOT enviará el código de usuario al usuario, debiendo informarle este ID para poder enviar mensajes privados (DM).
Cómo identificar la identificación de un usuario usando la API getUpdates
Otra forma de hacerlo es utilizando el método getUpdates de la API de Telegram. Luego de que el usuario inicia una conversación con tu BOT, esta acción queda registrada en este método, que recupera todas las “noticias” que interactúan con tu BOT.
Usando una herramienta como Cartero, puedes utilizar esta API y ver fácilmente el ID del usuario que inició la conversación con tu BOT.
Recuerda que la URL de este método es: https://api.telegram.org/botSEU_TOKEN_AQUI/getUpdates
En cualquiera de los métodos anteriores, el usuario deberá iniciar una conversación con su BOT para que pueda enviar los mensajes a su usuario. Esta es una configuración de seguridad de la API de Telegram para evitar el SPAM.
Cuando utiliza el ID de usuario en su llamada a procedimiento almacenado, el valor generalmente es POSITIVO.
Cómo integrar la base de datos con Telegram
Una vez que ya hayas creado tu cuenta en Telegram y creado el bot que usarás para enviar mensajes a los grupos, vayamos a la parte interesante: Crear el código .NET (C#) que integrará la base de datos de SQL Server con la API de Telegram.
Como requisito previo para utilizar este procedimiento, deberá crear la clase Devolución, disponible en la publicación SQL Server: cómo enviar advertencias y mensajes de error a la base de datos usando CLR (C#) para usar el método Devolución.Error y así, enviar mensajes de error, si se producen. También puedes optar por comentar el código y eliminar llamadas a este método (y también comentar usando Bibliotecas.Model), pero no lo recomiendo, ya que no sabrás cuando ocurrió un error en tu llamada al SP para enviar mensajes a Telegram.
Al igual que ocurre con Ryver y Slack, para poder enviar mensajes el usuario BOT debe estar agregado a todos los grupos, privados y públicos, ya que es él quien envía los mensajes y no es posible enviar los mensajes si no está en el grupo.
Ahora que tenemos la cuenta creada, el usuario BOT está en los grupos deseados y hemos generado nuestro token, es momento de enviar los mensajes a través de la base de datos con el CLR.
using System;
using System.Data.SqlTypes;
using System.IO;
using System.Net;
using System.Text;
using Bibliotecas.Model;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void stpEnvia_Mensagem_Telegram(SqlString Ds_Canal, SqlString Ds_Mensagem)
{
const string token = "seu_token_telegram";
try
{
var mensagem = Ds_Mensagem.Value;
var canais = Ds_Canal.Value.Split(';');
foreach (var canal in canais)
{
var dsScript = $"chat_id={canal.Trim()}&text={mensagem}&parse_mode=Markdown";
var url = $"https://api.telegram.org/bot{token}/sendMessage";
var request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "POST";
request.UserAgent = "curl/7.45.0";
request.ContentType = "application/x-www-form-urlencoded";
var buffer = Encoding.GetEncoding("UTF-8").GetBytes(dsScript);
using (var reqstr = request.GetRequestStream())
{
reqstr.Write(buffer, 0, buffer.Length);
using (var response = request.GetResponse())
{
using (var dataStream = response.GetResponseStream())
{
if (dataStream == null) return;
using (var reader = new StreamReader(dataStream))
{
var responseFromServer = reader.ReadToEnd();
Retorno.Mensagem(responseFromServer);
}
}
}
}
}
}
catch (Exception e)
{
Retorno.Erro("Erro : " + e.Message);
}
}
};
Ejemplos de uso
Enviando un mensaje al grupo “Teste Dirceu Resende”
EXEC CLR.dbo.stpEnvia_Mensagem_Telegram
@Ds_Canal = N'-155990210', -- nvarchar(max) | grupos = ID negativo / DM = ID positivo
@Ds_Mensagem = N'Teste de *negrito*, _italico_ e
Quebra
de
linha.' -- nvarchar(max)
Envío de un mensaje al grupo “Teste Dirceu Resende” con URL externa
-- Enviando mensagem para o grupo "Teste Dirceu Resende" com URL
EXEC CLR.dbo.stpEnvia_Mensagem_Telegram
@Ds_Canal = N'-155990210', -- nvarchar(max) | grupos = ID negativo / DM = ID positivo
@Ds_Mensagem = N'Gostou desse recurso? Veja mais no meu blog: (https://dirceuresende.com/blog)' -- nvarchar(max)
Enviando mensaje privado (DM)
Una vez que tenga la identificación de usuario, simplemente inicie una conversación con el BOT para que tenga permiso para enviarle mensajes. Si no hace esto, recibirá este mensaje de error al intentar enviar el mensaje:
Error: El servidor remoto devolvió un error: (400) Solicitud incorrecta.
Después de iniciar una conversación con su BOT, simplemente ejecute el siguiente SP:
EXEC CLR.dbo.stpEnvia_Mensagem_Telegram
@Ds_Canal = N'191345344', -- nvarchar(max) | grupos = ID negativo / DM = ID positivo
@Ds_Mensagem = N'Teste de mensagem *privada*' -- nvarchar(max)
¡Eso es todo, amigos!
Espero que te haya gustado esta publicación.
Un abrazo y hasta la próxima.
servidor sql clr .net dotnet framework c# integración csharp cómo crear base de datos integración base de datos cómo enviar mensajes cómo enviar mensajes notificaciones notificaciones de grupos privados dm Telegram
servidor sql clr .net dotnet framework c# integración csharp cómo crear base de datos integración base de datos cómo enviar mensajes cómo enviar mensajes notificaciones notificaciones de grupos privados dm Telegram










Comentários (0)
Carregando comentários…