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

No segundo post sobre como desenvolver um bot para o Telegram, eu implementei em PHP tanto o bot quanto o parser usado para retirar os resultados das loterias do site do G1. Porém, ao finalizar toda a implementação, nosso bot ainda não era capaz de responder automaticamente às solicitações.

Neste post, eu irei demonstrar como fazer com que o bot responda aos comandos enviados pelo usuário de forma automática. Para isso, será necessário conhecermos uma funcionalidade da API do Telegram chamada Webhook.

O Webhook serve para integrar o bot com a página que define o seu comportamento. Dessa forma, quando um comando é enviado ao bot, a API do Telegram dispara um evento, o qual despacha a mensagem via HTTP para URL da página configurada junto ao Webhook.

Agora que já conhecemos o Webhook, podemos partir para setar o Webhook do nosso bot. Para isso, a API do Telegram possui o método setWebhook. Ele recebe como parâmetro a URL da página que “responde” pelo bot. Para que essa URL seja considerada válida pelo método setWebhook, é preciso que ela suporte o protocolo HTTPS. Sabendo disso, para chamar o método setWebhook é só abrir o browser e digitar o seguinte:

https://api.telegram.org/bot(SEU_TOKEN)/setwebhook?url=https://(SUA_URL)/seubot.php

Após acessar a URL na formatação acima, a resposta da API do Telegram será a seguinte:

{“ok”:true,”result”:true,”description”:”Webhook was set”}

Feito isso, devemos fazer alguns ajustes no arquivo loterias.php. A parte alterada está comentada no código a seguir.

Pronto, agora você já pode conversar com o seu bot e ver como ele responde automaticamente aos comandos enviados. Para verificar como o bot da loteria ficou ao final de todo este tutorial, você pode observar a sequência de imagens abaixo.

Digite “/start” para começar.

Bot de loterias

Quando o teclado de opções abrir, escolha a loteria que deseja ver o resultado.

Bot de loterias

Após escolher a loteria, o resultado é exibido pelo bot.

Bot de loterias

Que tal adicionar o bot que acabamos de criar no seu Telegram? Para isso, procure por “loteriascaixabot” no app ou acesse o seguinte link: https://telegram.me/loteriascaixabot.

Um detalhe importante que esqueci de comentar anteriormente foi que caso seja necessário remover o Webhook, basta usar a seguinte URL: https://api.telegram.org/bot(SEU_TOKEN)/setwebhook?url=

Para visualizar o código-fonte do bot que foi desenvolvido neste tutorial, acesse: Telegram Bot.

Agora que você já sabe como criar um bot para o Telegram, use a sua criatividade. Os bots podem resolver muitos problemas pelo mundo a fora. =]

E ai gostou do tutorial? Ficou com alguma dúvida? Então, deixe um comentário!

Errata

Caso você o bot não funcione quando você hospedar os arquivos no seu servidor, tenta desativar o mod_security na sua hospedagem. Essa foi uma dica do leitor Juliano Bazzi. =]

49 Comment

  1. Luiz,
    Muito bom, parabéns, excelente material.
    Me diga uma coisa, como faço para controlar sub-opções ou sub-menus, como queira chamar.
    Por exemplo, supondo que você tivesse um menu inicial no teu bot, com as opções, resultado jogo do bicho e resultados loterias, isso é só um exemplo.
    Clicando em loterias, o usuario poderia selecionar, sena, mega, etc… e Clicando em Jogo do Bicho, teriam outras opções, enfim.
    Como eu faço para quando o usuário for clicar em uma das sub-opções (ex.: sena), eu identifique que ele está na opção de loterias e não do jogo do bicho?
    Não gostaria de criar tabelas em banco de dados para cada clique em algum botão, eu tivesse que armazenar a opção em que o usuário se encontra entende.
    E também não gostaria de criar botões no bot como por exemplo [1]Loterias, [2]Jogo Bicho, e ter que ficar tratando as strings para ver em qual menu o usuário se encontra.
    No teu exemplo, é tranquilo para controlar, pois o usuário clica diretamente na opção deseja e boa, agora estou com essa dificuldade em controlar sub-opções.

    Se puder ajudar, agradeço imensamente.

    Abraços e novamente parabéns pelo material publicado.

    André

  2. Luiz,
    Na dúvida que enviei anteriormente, é como se eu pudesse ter no botão o text e o value, dai conseguiria controlar as opções.

    Abraços,

    André

    1. Luiz Marcus Luiz Marcus says: Responder

      E ae André, blz?

      Obrigado pelo elogio.

      Acho que encontrei a resposta para o seu problema. Dá uma olhada no Inline Keyboard da API do Telegram neste link: https://core.telegram.org/bots/2-0-intro#new-inline-keyboards
      Como esse componente dá pra você fazer o que você precisa. Quando a pessoa clicar no “Monitoramento de Rota”, você exibe um inline keyboard junto com a mensagem “Selecione o usuário a ser monitorado”. Assim, quando o usuário pressionar um das opções do inline keyboard, você pode enviar ao servidor os dados(identificador) da opção que ele escolheu.
      Para implementar isso, no método sendMessage, você seta o reply_markup como InlineKeyboardMarkup e cria os botões com InlineKeyboardButton.

      Espero ter ajudado.

  3. Ola Luiz, gostaria de saber se e possivel criar um bot que pegas as informacoes coletadas e enviar para uma pagina de um site ?
    se sim pode dar um palinha de como ? agradeço desde já .

    1. Luiz Marcus Luiz Marcus says: Responder

      E ae Lucas! Dá sim!

      Você pode, por exemplo, fazer com que o bot armazene as repostas que ele recebe em um banco de dados e exibi-las na página do site. Basta você pegar o código do tutorial, acrescentar a conexão com um banco de sua preferência e customizar as ações do bot de acordo com o que você precisar.

      Espero ter ajudado. Qualquer dúvida é só falar.

  4. Paulo says: Responder

    Como posso fazer para que os comandos funcionem também em grupos e super grupos sem /?

    1. Luiz Marcus Luiz Marcus says: Responder

      E ae, Paulo! Blz?

      Você pode usar o método setPrivacy do BotFather. Quando ele 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. Quando o setPrivacy for desativado, como os comandos não vão mais precisar da “/”, seu bot terá que ler as palavras contidas nas mensagens para identificá-los.

      1. Paulo says: Responder

        Eu fiz isso mas se o usuário enviar qualquer mensagem no grupo o bot resulta em “Desculpe, mas não entendi essa mensagem.” ou “Desculpe, mas só compreendo mensagens em texto” já removi essas duas partes e funcionou normal, mas não tem outra forma de habilitar essas mensagens somente para o modo privado?

        1. Luiz Marcus Luiz Marcus says: Responder

          Paulo,
          É preciso usar o modo privado para retirar a necessidade do uso de “/” nos comandos. Na API não encontrei outra forma de fazer isso.
          Com relação as leituras das mensagens pelo bot, no primeiro momento não deve ter funcionado porque o código do bot estava comparando as strings inteiras, quando o correto seria usar o método strpos para verificar se algum comando está contido dentro da mensagem.

  5. Paulo says: Responder

    Ah e também você poderia adicionar ao tutorial o comando para remover o bot da url?

    1. Luiz Marcus Luiz Marcus says: Responder

      Já ia esquecendo de responder xD
      Para remover o Webhook, basta usar a seguinte URL: https://api.telegram.org/bot(SEU_TOKEN)/setwebhook?url=(Aqui é vazio mesmo)
      Vou acrescentar uma observação no fim do tutorial.

      1. Paulo says: Responder

        Obrigado amigo!

  6. Wenderson says: Responder

    Ótimo tutorial. Simplesmente perfeito.

    Só uma ressalva, o resultado da lotofacil e lotomania estão invertidos.

    Estou usando já pra consultar os resultados.

    1. Luiz Marcus Luiz Marcus says: Responder

      Obrigado pelo elogio, Wenderson!
      Já corrigi o erro que você apontou. Valeu!

  7. Margarida says: Responder

    Boa noite, desculpe a ignorância, mas onde coloco os arquivos PHP ?

    1. Luiz Marcus Luiz Marcus says: Responder

      Boa noite, Margarida!
      Não tem nada de ignorante em sua pergunta. =]
      Você cria uma pasta chamada “bot” dentro da pasta do seu servidor e coloca os arquivos PHP lá dentro. Por exemplo, se você está usando o Apache no Linux, o endereço da pasta pode ser assim: /var/www/bot. Se estiver utilizando algum site de hospedagem, pode ficar assim: public_html/bot
      Qualquer dúvida, pode perguntar.

  8. Margarida says: Responder

    Boa noite Luiz Marcus,
    obrigada pelo apoio, mas não estou conseguindo. Meus arquivos estão no hostinger.

    1. Luiz Marcus Luiz Marcus says: Responder

      Olá, Margarida!
      Tenta fazer o seguinte: acesse o dashboard do hostinger, em seguida, você a acessa o gerenciador de arquivos. Quando o gerenciador for aberto, uma das pastas contidas nele será a public_html. É nessa pasta que você deve por os arquivos do bot.
      Sendo assim, o link ficaria: http//seusite.com/loteriasbot.php
      Mas não esqueça que para setar a url como o webhook no Telegram é necessário que a hospedagem suporte SSL, ou seja, o link também precisa ser acessado via https. Verifique na hostinger se o SSL está ativo.
      Qualquer dúvida, é só falar.

  9. Margarida says: Responder

    Boa tarde Luiz Marcus, acho que estou quase lá kkkkkk, mas ainda não consegui.
    Quando seto o webhook https://api.telegram.org/bot261625282:AAHeVioqisXi4u7c-Q0aFOTu3iJj-4wrB9A/setwebhook?url=radioslandell.esy.es/telegram/loteriasbot2.php, retorna a mensagem beleza que deu certo {“ok”:true,”result”:true,”description”:”Webhook was set”}. Quando peço uma consulta no navegador https://api.telegram.org/bot261625282:AAHeVioqisXi4u7c-Q0aFOTu3iJj-4wrB9A/getupdates, também retorna a tela dos pedidos feito ao BOT {“ok”:true,”result”:[{“update_id”:510306359,
    “message”:{“message_id”:36,”from”:{“id”:239733994,”first_name”:”Margarida”},”chat”:{“id”:239733994,”first_name”:”Margarida”,”type”:”private”},”date”:1472489371,”text”:”\/start”,”entities”:[{“type”:”bot_command”,”offset”:0,”length”:6}]}}]}.
    Quando troco por https://api.telegram.org/bot261625282:AAHeVioqisXi4u7c-Q0aFOTu3iJj-4wrB9A/getme, ele retorna no navegador {“ok”:true,”result”:{“id”:261625282,”first_name”:”loteriasdandenovo”,”username”:”loteriasdandenovobot”}}.
    Só que no telegram não funciona, não acontece nada, não aparece as opções, não responde ao /start.

    Socorro, help

    1. Luiz Marcus Luiz Marcus says: Responder

      Oi, Margarida! Desculpa pela demora para responder.

      Que bom que você está progredindo. kkk

      Depois que você seta o Webhook, as mensagens do getUpdate são recebidas pelo método “file_get_contents(“php://input”);” no código PHP. Verifique se essa linha está no seu código. Essa linha sempre lê a última mensagem recebida pelo bot.

      Para testar o recebimento das mensagens, você pode também fazer o método processMessage da seguinte forma:

      function processMessage($message) {
      // processa a mensagem recebida
      $message_id = $message[‘message_id’];
      $chat_id = $message[‘chat’][‘id’];
      if (isset($message[‘text’])) {

      $text = $message[‘text’];//texto recebido na mensagem
      sendMessage(“sendMessage”, array(‘chat_id’ => $chat_id, “text” => $text));
      }
      }

      Assim seu bot vai responder a qualquer mensagem recebida.

      Qualquer problema, é só falar.

      1. Olá Luiz, gostei muito do seu post, li as 3 partes e fiz tudo igualzinho ao que falou.. Sendo que estou com o mesmo problema que nossa colega Margarida, e inclusive testei isso que você passou aqui na resposta, mas não tive sucesso… Eu consegui ativar o Webhook normalmente, e o getMe também da retorno ok. Mas não sei porque o bot não responde “sozinho”.. Antes, quando fazia o refresh manual, ele enviava a resposta, mas depois, com o webhook não fica automático. O que pode ser?

        1. Luiz Marcus Luiz Marcus says: Responder

          Olá, Guilherme!
          Primeiramente, obrigado pelo elogio!
          Com relação ao seu problema, já que você conseguiu receber as mensagens quando deu refresh manual, eu acho que o comando file_get_contents(“php://input”) deve ser o problema. Provavelmente, esse comando não esteja funcionando na sua hospedagem. Para verificar se o file_get_contents(“php://input”) está funcionando, você pode acrescentar a linha “echo $update_response;” logo após o comando e fazer um POST passando algum valor pra ver se ele é impresso. Caso o valor não seja exibido, veja com o suporte da sua hospedagem a causa do não funcionamento do comando file_get_contents(“php://input”).

          Em resumo, todas as mensagens enviadas ao bot, são recebidas pelo comando file_get_contents(“php://input”). Se esse comando não estiver funcionando, o bot não consegue ler as mensagens e, portanto, não as responde.

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

          1. Renato says:

            Estou com um problema parecido com o do Guilherme, depois q habilitei o webhook o bot não retorna nada, testei o file_get_contents como você pediu fazendo um teste com um post e os dados do post é exibido normalmente…. já cacei um monte de coisa na net mas sem solução, continua sem funcionar

          2. Luiz Marcus Luiz Marcus says:

            Oi, Renato.
            Você está testando o bot em produção né? Se seu bot está recebendo a mensagem, acho que você deve estar pegando algum valor errado do json ou a resposta que seu bot deve enviar deve estar mal formatada. Dá uma olhada com mais calma.
            Qualquer coisa, manda o código para contato@luizmarcus.com que eu dou uma olhada. =]

    2. Oi Margarita Boa noite, tomara vc este bem. Acho que sei qual pode ser o seu problema, quando vc executa a instrução setwebhook vc tem que asegurarse que o seu url deve ser um endereço q seja “https” tal qual como Luiz Marcus menciono no começo da terça parte do tutorial, senão é “https” nao vai dar certo mesmo.

      Saudaçoes

  10. Boa tarde, Luiz!
    Agradeço muito pelo material postado e, principalmente, pela didática utilizada!
    A boa vontade de caras como você é que faz a web mais bacana!
    Voltarei mais vezes pra conferir o site e aprender coisas novas!
    Grande abraço

    1. Luiz Marcus Luiz Marcus says: Responder

      E ae Renê!

      Obrigado pelo elogio! =]
      São comentários como o seu que fazem agente querer continuar compartilhando conhecimento.
      Mais uma vez obrigado e volte sempre.

  11. Oi Boa noite Luiz, muito agradecido pelo seu tutorial, tenho que dizer que foi de grande ajuda, procure muitos sites pra obter informação de como fazer o primer bot, mas com certeza o seu tutorial pode ser considerado uns dos melhores, simples e complento. Tambem gostaria fazer uma pergunta, executei seu codigo no meu bot é todo funciono perfeito apenas tive, ou tenho, um problema, o bot nao deixa de actualizar e nao deixa de repetir a menssagem, nao deixa de responder ate que nao estou escrevendo, tomara vc possa me dar uma luz.

    Agradecido novamente,

    Edilio

    1. Luiz Marcus Luiz Marcus says: Responder

      Oi, Edilio.

      Obrigado pelo elogio. Ainda bem que o tutorial te ajudou. =]

      Pelo que eu entendi, o seu problema é o fato de o bot estar repetindo sempre a mesma mensagem e respondendo mesmo sem você falar. A causa desse problema pode ser a fila de mensagens enviadas ao bot. É necessário que no código, o bot leia apenas a última mensagem recebida. Se você já hospedou seu bot em um servidor remoto, basta você copiar o código que está no link abaixo e testar:
      https://github.com/luizmarcus/PHP/blob/master/telegrambot/loteriasbot.php
      O código presente no link acima usa o file_get_contents(“php://input”) para obter sempre a última mensagem recebida.
      Caso você esteja testando localmente(localhost), é normal que o bot fale sozinho pois a fila de mensagens pode não estar vazia, assim ele acaba lendo a última mensagem do array (veja o código da parte 2 do tutorial) e respondendo.
      Teste em um servidor remoto. Muito provavelmente, deve funcionar.

      Qualquer problema, pode perguntar.

  12. Rafael Justino says: Responder

    Olá Luiz. Parabéns pelo post.
    Uma pergunta, como desenvolvo um bot que cria lembretes??
    Obrigado.

    1. Luiz Marcus Luiz Marcus says: Responder

      E ae Rafael, blz?

      Para desenvolver um bot que possa armazenar lembretes e alerta a pessoa, é necessário fazer uso de um banco de dados para guardar os lembretes(data e mensagem) e a pessoa(chat_id) a qual eles pertencem. Para saber se tem algum lembrete para um determinado dia, a pessoa pode perguntar ao bot, enviando a palavra “checar”, por exemplo. Dessa forma, o bot responderia com os lembretes daquele dia.
      É um exemplo simples, mas que dá pra fazer com o código do tutorial.
      Espero ter ajudado.

  13. Opa, Tudo bom Luiz Marcus?
    bom consegui quase todos os métodos des de envio de arquivos, há mensagens e dados simples..
    Mas… o que não consegui é implementar o inline_keyboard.. li toda documentção faço como diz la..
    ‘reply_markup’ => array(‘inline_keyboard’ => array(array(‘text’ => ‘meu botão’, ‘url’ => ‘http://exemplo.com’)))

    mas os botões não geram, e apenas me retorna a função seguinte!!! estou fazendo algo de errado?

    1. Luiz Marcus Luiz Marcus says: Responder

      Tudo certo, Rafael!
      A resposta para o seu problema é bastante simples. O inline_keyboard pode ter botões na mesma linha ou em linhas diferentes. Cada linha de botões do inline_keyboard deve ser montada em um array diferente. Dentro do array da linha, você acrescenta o array referente a cada botão que compõe a linha. No código abaixo, eu fiz um inline_keyboard com dois botões na mesma linha:

      'reply_markup' => array('inline_keyboard' => array(array(array('text'=>'meu botão','url'=>'http://google.com'),array('text'=>'meu outro botão','url'=>'http://google.com'))))

      Testa e vê se funciona.
      Qualquer dúvida é só falar.

      1. Rafael Gomes says: Responder

        Luiz Marcus, obrigado, funcionou corretamente!! sucesso pra vc!

      2. Também entendi agora, tinha me perdido na contagem das arrays e não acontecia nada. Mas com esse seu exemplo consegui avançar. Obrigado!

        1. Luiz Marcus Luiz Marcus says: Responder

          De nada, George! A organização dos arrays pode atrapalhar mesmo.
          Dei uma olhada no bot do educadata.org. Ficou muito bom. =]

  14. Evandro says: Responder

    Não achei nas respostas, mas tem como “limpar” a mensagem depois de respondido? A cada F5 na pagina interna que fiz, ele manda a ultima resposta de novo.

    1. Luiz Marcus Luiz Marcus says: Responder

      Tudo blz, Evandro?
      Se você estiver usando o bot localmente, sempre que você der F5 pra pegar os updates, o bot sempre vai obter a fila de mensagens inteira. Nessa fila de mensagens, a ultima mensagem é sempre a mesma, se o usuário não mandou nada novo. Então, todas as vezes que você apertar F5, a resposta do bot será a mesma. Até onde eu sei não tem como limpar a fila. Porém, se seu bot estiver em produção, ou seja, usando um Webhook, esse problema desaparece.

      Uma forma(para não dizer armengue xD) de resolver esse problema é armazenar o ultimo message_id e só deixar o bot responder quando um novo message_id for inserido na fila.
      Vê se funciona.

      Qualquer coisa, só falar.

  15. Rafael Gomes says: Responder

    Oi Luiz blz? Eu de novo aqui!!
    Bom é o seguinte, queria usar os botões para para da um update nas mensagens, vi um exemplo na DOC do Telegram API com um sistema de paginação no bot de muisca..
    Como eu poderia implementar algo semelhante, tentei quebrei a cabeça..
    é tipo assim: digito um comando, aparece a msg com os botões inline, e quando aperto esse botão a msg acima é atualizada. to precisando muito, gerencio u grupo de 2k então é muito flood de msgs, e muitas requisições desnecessárias no servidor!

    Agredeço muito se vc tiver uma solução para mim.. Tanks

    1. Luiz Marcus Luiz Marcus says: Responder

      Blz, Rafael!
      Dei uma pesquisada e acho que encontrei a resposta para o seu problema. Não implementei para testar, mas vamos lá!
      Primeiro você cria um inline_keyboard com um callback. Esse callback serve pra você pegar o evento de clique no botão:

      "inline_keyboard" => array(array(array("text" => "Meu Botão", "callback_data" => "meuCallback")))

      Quando o usuário clicar no botão, o bot vai receber o callback. Para você receber o callback você faz o seguinte:

      $update_response = file_get_contents("php://input");
      $update = json_decode($update_response, true);
      $callback_query = $update["callback_query"]

      Na variável $callback_query você tem todos os dados que precisa para atualizar a mensagem. Agora, em vez de usar o método sendMessage para enviar a resposta, você usa o método editTextMessage. Eu nunca usei ele, então não sei como funciona, mas na documentação tem tudo explicado:

      https://core.telegram.org/bots/api#editmessagetext

      Se você seguir a documentação, acho que você consegue. =]

      Abrs.

      1. Rafael Gomes says: Responder

        Luiz, Muito Obrigado pela paciência !
        Estava tentando usar o editMessageText sem pegar os dados da msg, estava fazendo de modo direto com o id do chat e da msg.. mas agr vi que o id muda não sei o pq,, mas enfim deu certo!!!
        Enfim com sua ajuda consegui, o resultado para meu problema é

        $callback_query = $update["callback_query"]; // Sua dica para instanciar a variável graças a ela obrigado!

        if (isset($update['callback_query'])){
        // extract what is required
        $chat_id = $callback_query['message']['chat']['id'];
        $user_id = $callback_query['from']['id'];
        $callbackdata = $callback_query['data'];
        $message_id = $callback_query['message']['message_id'];
        $text = $callback_query['message']['text'];
        // then send the message you want
        resposta('editMessageText', ['chat_id' => $chat_id, 'message_id'=> $message_id, 'text'=>'Minha msg atualizada ']);
        }

        1. Luiz Marcus Luiz Marcus says: Responder

          Que bom que funcionou, Rafael! =]
          Agora quem também tiver a sua dúvida pode usar seu código como referência. Vlw!

  16. Olá Luiz, em paz? Espero que sim.
    Muito bom suas dicas man.
    Explica bem e deixa tudo muito claro.
    Segui todos os seus passos e ajudou muito com um projeto que havia parado aqui.
    Parabéns.
    Deixa te perguntar:
    Um dos clientes que tenho, precisou de um projeto e acabei desenvolvendo com o @Manybot.
    Não sei se já mexeu com ele ou com o Chatfuel para desenvolver algum Bot para o Telegram.
    Enfim, depois de feito o Bot (usando o Manybot), eu gostaria de ter acesso ao código fonte dele, será que isso é possível?
    Pois toda vez que alguém inicia o Bot criado, aparece uma mensage de início dizendo: Money_BotRobot:
    “Want to create your own bot? Go to @Manybot”
    Obrigado parceiro.
    Forte abraço e continue com suas dicas.
    Vc é fera.

  17. Ignora essa pedaço inicial da mensagem: Money_BotRobot:

    1. Luiz Marcus Luiz Marcus says: Responder

      Tudo em paz e obrigado pelo elogio, Santiago!
      Pra ser sincero, eu nunca tinha ouvido falar do ManyBot nem do Chatfuel. Pelo que eu entendi, são ferramentas para criação de bots sem precisar codificar. Essas ferramentas devem armazenar apenas as funcionalidades e mensagens do seu bot em algum banco de dados. Eles não geram código nenhum. O seu bot é acessado através do servidor e do código fonte deles. Ou seja, eles não vão deixar você ver o código fonte. =[
      Como o ManyBot é free, a mensagem “Want to create your own bot? Go to @Manybot” é para marketing da ferramenta. Caso exista uma versão “Pro”, talvez você consiga retirar a mensagem pagando alguma taxa.

      Boa sorte com seu bot. =]

  18. perfeito material!!!

    Parabéns!

    1. Luiz Marcus Luiz Marcus says: Responder

      Obrigado pelo elogio, Alexon! =]

  19. Ivan says: Responder

    Olá Luiz Marcus tudo bem ?
    Primeiramente Parabéns pelo Material!
    Eu fiz tudo exatamente como vc mencionou em neste tutorial, porém nada acontece quando eu envio a mensagem /start ou quando eu recarrego a página em php, nada acontece.
    Meu servidor não tem suporte a ssl, será que é este o problema ?
    Obrigado

    1. Luiz Marcus Luiz Marcus says: Responder

      Tudo bem, Ivan!
      Obrigado pelos parabéns.
      Um dos pré-requisitos para o bot funcionar é o suporte ao SSL. =[
      Muito provavelmente, esse é o problema. Tenta testar seu bot em uma hospedagem com SSL.

Deixe uma resposta