Gerenciando Grupos do Telegram com Bots

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!

Deixe um comentário