Como Criar um Bot para o Telegram em PHP (Parte 1)

Há algumas semanas o WhatsApp foi bloqueado em todo o Brasil pela segunda vez e esse evento fez com que mais de um milhão de brasileiros recorressem ao Telegram para continuar conversando com os amigos e manter contatos profissionais.

O Telegram, para quem ainda não conhece, é um aplicativo de mensagens baseado em nuvem. O fato de ele ser baseado em nuvem permite que o usuário acesse suas mensagens em qualquer dispositivo. O Telegram também criptografa as mensagens, além de disponibilizar chats privados e prover a autodestruição de mensagens, o que dá segurança e privacidade aos usuários. Já para os desenvolvedores, existe a API do Telegram, a qual pode ser usada para o desenvolvimento de aplicação sobre a plataforma.

Com a API do Telegram é possível criar clientes para ler e enviar mensagens, ou seja, você pode criar seu próprio “Telegram” para qualquer plataforma. Além disso, é possível também o desenvolvimento de bots. Os Bots são aplicações com as quais o usuário pode interagir através do Telegram. A interação entre os usuários e os bots pode ser via mensagens ou através da execução de comandos.

No site Telegram Bot Store é possível encontrar uma série de bots das mais variadas funções. O site inclui desde bots de notícias até os que jogam poker! kkkkk

Que tal desenvolvermos um bot também? Mas antes de começarmos, precisamos definir o que ele irá fazer. xD

Que tal fazermos um bot para exibir os resultados das loterias da Caixa Econômica? Seria bem útil!! =]

O primeiro passo para criar um bot para o Telegram é adicionar o BotFather à sua lista de contatos. No meu caso, como mostra a imagem abaixo, eu o adicionei através da versão Desktop do Telegram.

botfather

Ao iniciar uma conversa com o BotFather, digite “/newbot”. Quando ele receber esse comando, ele irá solicitar um nome para o bot. No meu caso, eu digitei “Loterias Caixa”. Em seguida, deve ser escolhido o nome de usuário do bot, para o qual eu escolhi “loteriascaixabot”, uma vez que “loteriabot” já existia. Pronto, após fazer isso o bot é criado e um TOKEN de acesso é criado. Todo esse procedimento pode ser visto na imagem abaixo.

botfather criação bot

Para adicionar a foto do avatar do bot, é só utilizar o comando “/setuserpic”, escolher qual bot receberá mudará a foto do perfil e enviar a imagem.

bot avatar

Pronto, agora o bot da loteria já está configurado e cadastrado no Telegram.

No próximo post, eu irei mostrar como implementar em PHP o comportamento e ações a serem executadas pelo bot.

E ai gostou? Qualquer dúvida, deixa um comentário! =]

 

40 comentários em “Como Criar um Bot para o Telegram em PHP (Parte 1)”

  1. vc consegue fazer um bot, em que aparece o resultado de todas as extraçoes da loteria federal do brasil??? alem das que vc ja colocou no bot leteriascaixa?

    Responder
    • E ae Gildo, blz?

      É possível fazer o bot que você mencionou. Com esse tutorial que eu postei aqui dá pra fazer vários tipos de bots.
      Infelizmente, não tenho muito tempo disponível pra desenvolver tantos bots assim. kkkk
      Mas esse tutorial pode ajudar outras pessoas a criá-los. xD

      Responder
  2. Opa, luiz tem como fazer o bot responder sempre no privado ?
    Pois tenho um bot e esta setado como private enable no botfather, mas nao encaminha para o pv, cai sempre no geral , no meu caso tenho o bot em um grupo e gostaria de direciona as respostas para os usuarios e nao no geral.
    Desde ja obrigado…

    Responder
    • E ae, Marciano!

      O método setPrivacy do BotFather, quando está enabled, serve para o bot “escutar” apenas as mensagens enviadas ao grupo que começam com “/”. Se o setPrivacy estiver disabled, o bot “escuta” todas as mensagens que forem enviadas ao grupo. Sendo assim, o setPrivacy não tem ligação com o envio de mensagens privadas aos membros do grupo.
      Para seu bot iniciar uma conversa com algum membro do grupo, você pode fazer uso da funcionalidade Deep Linking da API do Telegram. Dá uma olhada nesse link: https://core.telegram.org/bots#deep-linking

      Espero ter ajudado. =]

      Responder
    • Oi, Leornado.
      Se eu entendi a sua pergunta, você quer adicionar o bot a sua lista de contatos, é isso? Para isso, basta você buscar pelo nome do bot no seu Telegram. A partir dai, você pode conversar com ele normalmente.

      Responder
  3. Olá amigo Luiz,

    Gostaria de deixar meu bot sem botões e sem integração nos grupos, apenas com alguns comandos pra enviar regras, dar ban, warn, postar algumas postagens do canal pro grupo, etc.
    Somente isto! Com eu deixo meu bot assim, já o criei, mas preciso personalizá-lo.
    Tô lendo a página de bot do Telegram pra ve se aprendo alguma coisa, mas em muito mais!
    Desde já agradecço!

    Responder
    • Olá, Cidadão S/A!
      Como você já registrou seu bot no Telegram, o próximo passo é programá-lo, fazendo uso da API do Telegram, para que ele faça a administração do grupo. Aqui no blog, na segunda e terceira parte do post, eu mostro como programar um bot simples em PHP e usar a API. Se você for programador, você pode se basear nesses posts e implementar seu próprio bot de administração de grupos.

      No caso de você não ser programador ou querer uma solução bem menos trabalhosa, uma possibilidade é usar bots de administração já prontos. Um exemplo é o Group Butler Bot que possui funções de antispan, warn, kick e etc. Você pode configurar o Group Butler Bot pelo próprio Telegram, sem a necessidade de mexer em código. Ele é bem simples e tem suporte ao português! O link para conversar com ele é o seguinte:

      http://telegram.me/GroupButler_bot

      Qualquer dúvida, é só falar. =]

      Responder
  4. MANO EU QUERO FAZER UM BOT QUE ASSIM QUE EU RECEBER UMA MENSAGEM DE UM CANAL “A” ELE A RETRANSMITA AUTOMATICAMENTE PARA UM CANAL “B”, TEM COMO?

    Responder
    • Olá, João!
      Então, acho que esse bot é possível fazer sim. Se você entender de programação e ler a parte 2 e 3 deste post, acho que você consegue fazer.
      Infelizmente, não tenho disponibilidade pra fazer esse bot no momento. =[

      Responder
  5. Oi Luiz

    Tem como fazer um Bot para responder perguntas, com as respostas pré determinas ?

    Exemplo.
    Pergunta para o bot
    Podemos visistar escolas ?

    Resposta
    Sim, podemos.

    Obrigado

    Responder
  6. Desculpa a pergunta besta, mas estava querendo fazer um sistema de busca interna, desta forma o usuario iria colocar /buscar, dai o bot responderia algo como “Ola, digite o que deseja abaixo!” dai a pessoa iria responder, tem como saber de alguma forma que este texto dela é uma resposta a pergunta? Tipo quando uso inline_keyboard ele me retorna o id da mensagem original.

    Responder
    • Não existe pergunta besta, Marcon. Pode perguntar a vontade. =]

      Com relação à sua pergunta, a única forma de saber seria pela ordem das perguntas feitas pelo bot. Então, se o bot perguntar “O que você deseja buscar?” e o usuário responde “computadores”, o bot deverá considerar “computadores” como o que o usuário quer pesquisar.
      Até onde sei, não existe maneira de associar uma pergunta à resposta, a não ser seguindo a ordem da conversa.

      Espero ter ajudado.

      Responder
  7. Estou querendo cria um bot para gerenciar um grupo fornecendo um token para acesso ao grupo e removendo quando o tempo do token acabar, sabe se e possível fazer um bot desse ?

    Responder
    • Olá, Wellington.

      É possível, sim. Se você for programador (leia os outros posts da serie), você pode programar o bot para gerenciar e deixar no grupo apenas que atender aos critérios que você desejar.
      A pessoa pode, ao entrar no grupo, precisar digitar uma senha. Se essa senha estiver errada, o bot o retira do grupo. Caso esteja certa, o bot começa a contar o tempo de permanência.

      Espero ter ajudado.

      Responder
  8. Parabéns pelo seu artigo meu caro … Me tire uma dúvida, como eu faria pra preencher dados numa determinada ordem
    exemplo preencha seu nome e em seguida seu cpf… é possivel e isso ficar armazenado de alguma forma sem ser no banco de dados?

    Responder
    • Olá, Geovane.

      É possível fazer a solicitação de dados em ordem ao usuário. Caso você deseje armazenar e utilizar esses dados, seria correto fazer uso de um banco de dados.
      As partes 2 e 3 deste post mostram um exemplo de implementação de bot para o Telegram e podem te dar alguma ideia de implementação.

      Espero ter ajudado.

      Responder
    • Olá, Andreia.

      É possível, sim.
      Você vai precisar desenvolver o bot utilizando a Telegram Bot API e colocá-lo como administrador do grupo. Feito isso, você implementa, no bot, as regras (chamando sua API, por exemplo) que os membros do grupo precisam atender para participar do grupo e chama o método kickChatMember da API do Telegram quando alguém não atender os critérios definidos.

      Caso você não queira desenvolver o bot, existem bots para o Telegram criados por empresas especializadas para gerenciar grupos. Mas não sei se é possível a integração com API externa.

      Espero ter ajudado.

      Responder
  9. Eu não sei o porque mas ultimamente o bot só envia um resultado a um tempão e até achei que os sorteio daega tinha parado mas no Google tinha outros números e de sorteio recente.

    Responder
    • Olá, Nande.

      O problema é que o G1, que é a fonte dos dados, não está atualizando a página com os resultados correntes. =(
      Espero que atualizem em breve.

      Responder
      • Entendi por isso até outro bot só libera o mesmo resultado também, até achei que tinha parado os sorteio mas depois vi que estava sempre tendo mas agora é em outro dia terça e sexta.

        Responder
    • Olá,

      O que você pode tentar é silenciar as notificações do grupo, depois ir nas configurações do seu Telegram no menu “Notificações e Sons” e, na seção, “Eventos” deixar a opção “Mensagens Fixadas” ativa. Acho que dessa forma você será alertado das mensagens fixadas, porém apenas as que o administrador do grupo optar por notificar todos os membros.

      Espero ter ajudado.

      Responder
  10. Boa tarde meu amigo, tenho uma dúvida referente ao bot, queria saber se tem como eu desenvolver um bot para ir em um site e ficar 24h monitorando um resultado que eu coloquei pra ele tipo pressao de um time 1.50 e placar 0x0 etc e quando este resultado for igual ele retornar a msg no telegram, agradeço se puder me ajudar e como poderei desenvolver este bot

    Responder
    • Olá, Elkellyton.

      Esse bot pode ser feito, sim. Você pode implementar um bot em Python (apenas uma sugestão) que executa um web scrapping para ficar lendo o site. Quando os valores que você deseja aparecerem no site, seu bot chama o método sendMessagee da API do Telegram, o qual recebe como parâmetro o chat_id da sua conversa com o bot e a mensagem com os valores do site. Dessa forma, você recebe a mensagem que precisa.

      Espero ter ajudado.

      Responder

Deixe um comentário