SQL Server – Como fazer uma integração do banco de dados com o Telegram e enviar mensagens utilizando o CLR (C#)

SQL Server – Como fazer uma integração do banco de dados com o Telegram e enviar mensagens utilizando o CLR (C#)
Avalie esse post

Olá pessoal,
Bom dia!

Neste post vou demonstrar como fazer uma integração do banco de dados com o Telegram e enviar mensagens utilizando CLR (C#), que é o principal concorrente do Whatsapp. Anteriormente, já demonstrei como fazer essa mesma integração nos posts:

Caso você não conheça ou não saiba utilizar o CLR no SQL Server, descubra como acessando o post Introdução ao SQL CLR (Common Language Runtime) no SQL Server.

O que é o Telegram?

Para quem não conhece, o Telegram é um dos comunicadores mais famosos e utilizados em todo o mundo, principal concorrente do Whatsapp e tem a proposta de permitir uma comunicação rápida, segura e fácil entre pessoas de qualquer parte do mundo.

Você pode criar grupos públicos, onde qualquer pessoa pode entrar e interagir ou grupos privados, onde somente quem está no grupo pode visualizar as mensagens. O Telegram possui uma versão em português, uma API aberta que permite realizar a integração com suas aplicações e o envio de mensagens automatizadas. O seu visual é muito parecido com o Whatsapp e ele é mais seguro, mais rápido e possui mais recursos que o seu principal concorrente e líder de mercado, mas possui uma quantidade de usuários ainda bem menor, principalmente no Brasil.

Onde e como posso usar o Telegram na minha empresa?

Esse recurso é especialmente útil para criar equipes na sua empresa e gerar alertas e monitoramentos por equipe, onde cada equipe recebe apenas os alertas referentes às suas atividades. Além disso, você pode utilizar os grupos abertos para enviar informativos e notificações que interessam para a empresa toda. Tudo isso, sem custo algum e você pode receber por e-mail, visualizar na Web e no seu smartphone.

Uma outra forma legal de se utilizar o Telegram, é enviar acompanhamento de metas de vendas para o setor de comercial, de forma que os gerentes regionais e locais possam acompanhar a performance da equipe de vendas em tempo real, sem ter que ficar consultando e abrindo relatórios, onde quer que eles estejam, mesmo fora da empresa.

Caso sua empresa adote o Telegram, o setor de RH pode utilizar o serviço para enviar mensagens e informativos para os colaboradores. Enviar mensagens de natal, uma mensagem especial no aniversário do colaborador, etc.

Enfim, a vantagem do Telegram é que ele pode ser enviado de várias formas diferentes (Web, Smartphone), onde quer que você esteja, dentro ou fora da empresa e representa uma grande revolução na forma em que as pessoas interagem com as informações.

Você pode utilizar o Telegram como ferramenta de comunicação, monitoramento e alertas das rotinas de TI, como falhas em jobs críticos, problemas em backups, corrupções de bases, queries lentas, locks, etc. Sempre que alguma rotina crítica falha, é enviado um e-mail interno e uma notificação via Telegram, onde chega uma notificação Push no meu celular (igual do Whatsapp) e onde quer que eu esteja, tomo conhecimento dessa falha.

Como desvantagem do Telegram (e Whatsapp) em relação ao Slack e o Ryver, é que os 2 primeiros comunicadores são abertos ao mundo, e podem ser utilizados para conversas pessoais e particulares com qualquer pessoa, podendo gerar uma desconcentração e perda de foco. O Slack e o Ryver são muito mais voltados ao meio corporativo, tanto que as pessoas que vão interagir precisam de convite.

Como ativar a API do Telegram

Para começar a utilizar a API do Telegram você precisará criar um novo BOT, que será o responsável por enviar as mensagens. Para isso, logue na sua conta do Telegram, seja na Web ou no celular, e inicie uma conversa com o usuário @BotFather

Clique no botão “Começar”.

Assim que você clicar no botão “Começar”, o Bot irá enviar uma lista de comandos:

Telegram – Opções do Bot

Selecione a opção /newbot e depois escolha o nome do bot e o usuário, conforme print abaixo:

Anote o token gerado, pois ele será utilizado pela Stored Procedure para realizar o envio das mensagens.

Como identificar o ID do canal ou do usuário?

Assim com o Ryver, a API do Telegram exige que você digite o ID do canal ao invés de um nome fácil de decorar e se utilizar, como é a API do Slack. Apesar de ser mais seguro, ter que ficar armazenando os ID’s dos canais e usuários é uma tarefa um pouco chata e improdutiva.

Vou demonstrar aqui como identificar o ID do canal e dos usuários, para enviar mensagens privadas.

Como identificar o ID de um grupo:

Para identificar o ID de um grupo do Telegram, basta acessar o Telegram Web, clicar no grupo desejado e observar a URL do grupo. Lembre-se que o BOT deve ser convidado para o grupo em que você deseja enviar a mensagem.

Se você não convidar o BOT e tentar enviar uma mensagem para o grupo, você verá essa mensagem de erro:

Erro : O servidor remoto retornou um erro: (400) Solicitação Incorreta.

Quando for utilizar o ID do usuário na chamada da sua Stored Procedure, o valor geralmente é NEGATIVO.

Como identificar o ID de um usuário:

Para identificar o ID de um grupo do Telegram é um pouco mais trabalhoso, pois o próprio usuário terá que lhe enviar essa informação. Para isso, ele terá que iniciar uma conversa com o BOT @get_id

Após iniciar a conversa, o BOT já irá enviar o código do usuário para o próprio usuário, e ele deverá lhe informar esse ID para poder enviar as mensagens privadas (DM’s).

Como identificar o ID de um usuário pela API getUpdates

Uma outra forma de se fazer isso, é utilizando o método getUpdates da API do Telegram. Após o usuário iniciar uma conversa com o seu BOT, essa ação fica gravada nessa método, que recuperar todas as “novidades” que interagem com o seu BOT.

Utilizando uma ferramenta como o Postman, você pode utilizar essa API e visualizar facilmente o ID do usuário que iniciou a conversa com o seu BOT.

Lembre-se que a URL desse método é: https://api.telegram.org/botSEU_TOKEN_AQUI/getUpdates

Em qualquer um dos métodos acima, o usuário precisará iniciar uma conversa com o seu BOT, para que ele possa enviar as mensagens para o seu usuário. Essa é uma definição de segurança da API do Telegram para evitar SPAM.

Quando for utilizar o ID do usuário na chamada da sua Stored Procedure, o valor geralmente é POSITIVO.

Como integrar o banco de dados ao Telegram

Uma vez que você já criou sua conta no Telegram e já criou o bot que você irá utilizar para enviar as mensagens para os grupos, vamos à parte interessante: Criar o código .NET (C#) que irá realizar a integração do banco de dados SQL Server com a API do Telegram.

Como pré-requisito para utilizar essa procedure, você precisará criar a classe Retorno, disponível no post SQL Server – Como enviar avisos e mensagens de erro para o banco pelo CLR (C#) para utilizar o método Retorno.Erro e assim, enviar mensagens de erro, caso ocorram. Você também pode optar por comentar o código e remover as chamadas para esse método (e comentar também o using Bibliotecas.Model), mas não aconselho, pois você não saberá quando ocorreu algum erro na sua chamada à SP de envio de mensagens para o Telegram.

Assim como ocorre no Ryver e no Slack, para que seja possível enviar as mensagens, o usuário do BOT tem que ser adicionado em todos os grupos, privados e públicos, pois ele que faz o envio das mensagens e não é possível enviar as mensagens se ele não estiver no grupo.

Agora que já temos a conta criada, o usuário do BOT está nos grupos desejados e já geramos o nosso token, é hora de enviar as mensagens pelo banco de dados com o CLR.

Exemplos de uso

Enviando mensagem para o grupo “Teste Dirceu Resende”

Enviando mensagem para o grupo “Teste Dirceu Resende” com URL externa

Enviando mensagem privada (DM)
Uma vez que você tenha o ID do usuário, basta iniciar uma conversa com o BOT para que ele tenha permissão de te enviar mensagens. Se você não fizer isso, irá receber essa mensagem de erro ao tentar enviar a mensagem:

Erro : O servidor remoto retornou um erro: (400) Solicitação Incorreta.

Após iniciar uma conversa com o seu BOT, basta executar a SP abaixo:

É isso aí, pessoal!
Espero que tenham gostado desse post.
Um abraço e até a próxima.

sql server clr .net dotnet framework c# csharp integration como criar integração banco de dados database como enviar mensagens how to send messages notifications notificações grupo privada dm Telegram

sql server clr .net dotnet framework c# csharp integration como criar integração banco de dados database como enviar mensagens how to send messages notifications notificações grupo privada dm Telegram

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

One Comment

Deixe uma resposta