TelegramNotifier
TelegramNotifier - Integração de Notificações via Telegram
Introdução
A classe TelegramNotifier foi criada para permitir o envio de mensagens e arquivos (documentos, imagens, áudios, vídeos) diretamente para usuários ou grupos no Telegram, utilizando apenas Java puro (sem bibliotecas externas). Ela oferece uma maneira simples e confiável de notificar sistemas, aplicações ou usuários via bot do Telegram, ideal para integrações de monitoramento, alertas e notificações.
Todos os métodos da classe são estáticos e utilizam apenas objetos básicos do Java (InputStream), garantindo flexibilidade no envio de arquivos de qualquer fonte (rede, pacotes internos, arquivos locais).
Objetivo
- Enviar mensagens de texto para chats do Telegram.
- Enviar arquivos variados (PDF, imagens, áudio, vídeo) para chats ou grupos.
- Ser fácil de integrar em qualquer projeto Java.
- Evitar dependências externas.
Criando seu Bot no Telegram
Passo 1: Criar o Bot
- Abra o aplicativo Telegram.
- Procure pelo usuário @BotFather.
- Envie o comando `/start`.
- Envie o comando `/newbot`.
- O BotFather pedirá:
- Nome para o bot (qualquer nome).
- Username (deve terminar com `bot`, exemplo: `meubotalertbot`).
Após isso, o BotFather responderá com o seu **TOKEN** de acesso ao bot.
Passo 2: Alterar a Imagem de Perfil do Bot
- No chat com o BotFather, envie o comando `/setuserpic`.
- Escolha seu bot.
- Envie uma imagem (de preferência quadrada, exemplo: 512x512px).
Passo 3: Importância do Token
O Token identifica seu bot para a API do Telegram. Nunca compartilhe ou exponha esse Token publicamente.
Recuperando o Chat ID
Passo 1: Conversa Privada (Chat ID de usuário)
- Envie uma mensagem qualquer para seu bot recém-criado.
- No navegador, acesse: [<SEU_TOKEN>/getUpdates ]
- No JSON de resposta, localize o campo: "chat":{"id":123456789,...}
- O número `123456789` é seu **Chat ID** pessoal.
Passo 2: Grupo (Chat ID de grupo)
- Crie um grupo no Telegram.
- Adicione seu bot ao grupo.
- Envie qualquer mensagem no grupo.
- Acesse novamente `getUpdates`.
- O `chat.id` retornado será o ID do grupo. Para supergrupos, o ID virá como número negativo (exemplo: `-1001234567890`).
Importância do Chat ID
O Chat ID é o identificador para onde a mensagem será enviada. Pode ser um usuário individual, um grupo ou um canal.
Utilização da Classe TelegramNotifier
Importação da Classe
Certifique-se que a classe esteja visível no seu projeto Java:
import br.eng.rodrigogml.rfw.notifier.TelegramNotifier;
Enviando uma Mensagem de Texto
TelegramNotifier.sendMessage(token, chatId, "Mensagem simples enviada pelo bot!");
Enviando Documentos
Carregando um arquivo PDF de dentro dos recursos:
try (InputStream document = TelegramNotifier.class.getResourceAsStream("/resources/arquivo.pdf")) {
TelegramNotifier.sendDocument(token, chatId, document, "arquivo.pdf");
}
Enviando Fotos
try (InputStream photo = TelegramNotifier.class.getResourceAsStream("/resources/image.png")) {
TelegramNotifier.sendPhoto(token, chatId, photo, "image.png");
}
Enviando Áudios
try (InputStream audio = TelegramNotifier.class.getResourceAsStream("/resources/audio.mp3")) {
TelegramNotifier.sendAudio(token, chatId, audio, "audio.mp3");
}
Enviando Vídeos
try (InputStream video = TelegramNotifier.class.getResourceAsStream("/resources/video.mp4")) {
TelegramNotifier.sendVideo(token, chatId, video, "video.mp4");
}
Boas Práticas
- Nunca faça commit do seu `token` ou `chatId` no repositório. - Utilize arquivos de configuração externos (como `config.properties`) para armazenar dados sensíveis. - Configure seu repositório para ignorar esses arquivos no `.gitignore`. - Trate falhas de comunicação (HTTP 4xx, 5xx) adequadamente nas chamadas.