Quem é leitor aqui do blog sabe que um dos assuntos mais abordados neste site é a implementação de bots para o Telegram. Dentro desse tema, eu já apresentei diversas maneiras de desenvolvimento e aplicação dos bots para a resolução de problemas do cotidiano. Além disso, no post anterior foi demonstrado como integrar um bot do Telegram a um Web App.
Inserido nesse contexto de aplicabilidade dos bots junto ao Telegram, existe a possibilidade do uso deles para o gerenciamento de grupos e canais. Os grupos do Telegram têm como objetivo facilitar a interação entre amigos e familiares ou a colaboração em equipe, podendo ter até 200.000 membros. Por sua vez, os canais são uma ferramenta para transmitir mensagens para grandes públicos, sendo que podem possuir um número ilimitado de inscritos. Sabendo disso, o uso de bots pode ajudar a filtrar o conteúdo de um grupo ou agendar a publicação de mensagens em um canal, por exemplo.
Uma vez que, aqui no blog, nós nunca ficamos só na teoria (Pra evitar a fadiga… kkk), vamos implementar um bot que filtrará o conteúdo de um grupo do Telegram e alertará se alguma palavra usada na mensagem de um usuário é permitida ou não.
Partindo para a criação do nosso bot, o primeiro passo é a configuração dele junto ao BotFather. Como já fiz esse procedimento diversas vezes nos posts anteriores, não vou entrar em detalhes. Contudo, nessa etapa é necessário alterar o modo de privacidade do bot para DISABLED, visto que por padrão ele não recebe todas as mensagens que as pessoas enviam ao grupo. Essa ação é feita por meio do comando /setprivacy
no BotFather, como mostra a imagem abaixo.
Agora que o nosso bot já foi criado, podemos partir para a implementação do código em PHP que fará a filtragem das mensagens enviadas ao grupo. Sendo assim, primeiramente, precisamos criar um array
com a lista de palavras que terão seu uso proibido pelo bot. Para o nosso exemplo, faremos uma blacklist com nomes de animais (É apenas para evitar o uso de palavrões aqui. Nada contra os bichinhos kkkk).
Após a estruturação da blacklist, precisamos criar uma função para verificar se a mensagem recebida pelo bot contém alguma das palavras banidas. Essa função chamaremos de checkBlackList
, a qual deve ser capaz de checar a ocorrência da palavra no singular ou no plural, independentemente se as letras estão em maiúsculo ou minúsculo. Para isso, vamos usar a função stripos
do PHP. Ademais, por meio da checkBlackList
será retornado o número de palavras banidas encontradas e quais foram elas.
Para que o usuário possa saber quais são as palavras proibidas no grupo que o bot está gerenciando, definiremos o comando “/blacklist”. Dessa forma, o bot, ao receber esse comando, enviará uma mensagem ao grupo contendo todas as palavras banidas.
Quando o nosso bot ler uma mensagem enviada ao grupo e identificar a existência de alguma palavra banida, ele irá informar o usuário por meio de uma resposta à mensagem com o conteúdo indevido. Para implementar essa resposta, é preciso adicionar o parâmetro reply_to_message_id
no método SendMessage
da API do Telegram (linha 16 do código abaixo), o qual receberá o valor do message_id
da mensagem que contém as palavras banidas.
No trecho de código acima (linhas 17 e 18) é possível notar que o bot espera cinco segundos e, em seguida, remove a mensagem de conteúdo indevido por meio do uso do método DeleteMessage
da API do Telegram. Porém, para que essa remoção aconteça, o bot deve ser administrador do grupo.
Abaixo é possível ver como o bot funciona conforme a implementação que fizemos.
Bom, é isso! O exemplo desse post foi bastante simples e foi pensado apenas para demonstrar como um bot pode ser usado no gerenciamento de um grupo. Logicamente, o código-fonte e o comportamento que foram apresentados podem ser modificados e melhorados de acordo com a aplicação na qual o bot será inserido.
Caso você queira testar o bot ou adicioná-lo a um grupo, acesse: https://t.me/exemplo_gerencia_grupo_bot
Para visualizar o código-fonte completo do bot que foi desenvolvido neste tutorial, acesse: Gerenciamento Bot.
O bot desenvolvido neste tutorial foi hospedado na Umbler.
E aí gostou do post? Ficou com alguma dúvida? Então, deixe um comentário!
Fala, Luiz! Tudo Blza? Sou aluno do curso de Ciencia de Dados da UFPB e me interessei bastante pelo seu Bot. Estou querendo tirar algumas duvidas com vc. É possivel?
E ae Guilherme, blz?
Pode mandar suas dúvidas, sim. Manda aqui na parte de comentários porque mais pessoas podem ter as mesma dúvidas que você. Caso seja, algo mais específico e que não possa ser público, manda por email para: [email protected].
Oii, eu to criando um bot e queria saber como eu faço para que o bot responda sem que seja preciso incluir o nome dele no comando;
ao digitar o comando “/pronto ” o bot não responde, apenas digitando “/pronto@teste_bot”
queria fazer ele atender ao “/pronto”
Também queria agradecer a esse conteúdo, depois de uma tarde inteira percebi através dele que o problema não tava no meu código e sim nessas configurações de privacidade do telegram. Muuuito obrigada ♥
Oii consegui, era só colocar o bot como admin do grupo
Oi, Valen!
Que bom que o post te ajudou e seu bot funcionou!
Qualquer dúvida, é só falar. =)