Por que PHP é uma ótima linguagem para criar chatbots?
\nQuando o assunto é criar chatbots, muitos pensam logo em Python ou Node.js. Mas o PHP, que alimenta o pythonlib.ru e grande parte da internet, também dá conta do recado com maestria. O PHP tem três grandes vantagens: facilidade de implantação em qualquer hospedagem, uma vasta quantidade de bibliotecas prontas e uma sintaxe clara. Se você já conhece PHP, pode escrever seu primeiro chatbot em uma noite. Neste artigo, vamos abordar a criação de um chatbot em PHP do zero, desde o registro no Telegram até o processamento de comandos complexos.
\nNão usaremos frameworks — apenas PHP puro e uma biblioteca oficial. Isso vai te ajudar a entender como tudo funciona "por baixo dos panos". Depois, você poderá migrar facilmente para qualquer framework moderno (Laravel, Symfony) para escalar seu projeto.
\n\nO que você precisa para começar?
\nAntes de escrever código, vamos preparar o ambiente de desenvolvimento. Para desenvolver um bot em PHP, você vai precisar de:
\n- \n
- Servidor web (Apache ou Nginx) com PHP 7.4 ou superior — qualquer hospedagem ou OpenServer na máquina local serve. \n
- Acesso HTTPS — o Telegram exige conexão segura para Webhook (dá para usar ngrok durante o desenvolvimento local).
- Composer — gerenciador de pacotes do PHP (instalação com um comando).
- Conta no Telegram — para registrar o bot e testá-lo.
Se você já tem um site em PHP, como o pythonlib.ru, pode adicionar o bot diretamente em um subdomínio — é prático e não gera custos extras.
\n\nRegistrando o bot no Telegram
\nAbra o Telegram, procure por BotFather (o bot oficial para criar bots) e envie o comando:
\n/newbot\nO BotFather vai pedir um nome e um username para o seu bot. O username deve terminar com bot, por exemplo: MeuPrimeiroBotPHP. Após o registro, você receberá um token — uma string longa como esta:
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw\nGuarde esse token — ele será usado em todas as requisições à API. Não compartilhe com ninguém, senão seu bot pode ser hackeado.
\n\nArquitetura do chatbot: Long Polling vs Webhook
\nExistem duas formas de fazer o bot receber mensagens:
\n- \n
- Long Polling — o próprio bot fica "perguntando" ao servidor do Telegram: "Tem mensagens novas?". É mais simples para depuração, mas sobrecarrega o servidor. \n
- Webhook — o Telegram envia uma requisição POST para a sua URL sempre que alguém escreve para o bot. É mais rápido e confiável, mas exige HTTPS.
Neste guia prático, vamos usar Webhook, que é o padrão moderno para bots em produção. Dá para configurar com um único comando pelo navegador.
\n\nPasso 1: Instalando a biblioteca para a API do Telegram
\nPara não precisar fazer parsing de JSON e enviar requisições manualmente, vamos instalar a biblioteca oficial do Telegram para PHP. Abra o terminal na pasta do seu projeto e execute:
\ncomposer require telegram-bot/api\nEssa biblioteca suporta todos os métodos da API e é atualizada junto com o Telegram. Após a instalação, a pasta vendor e o arquivo composer.json serão criados.
Passo 2: Script básico para processar mensagens recebidas
\nCrie um arquivo bot.php — ele será o ponto de entrada do Webhook. Aqui está um código mínimo que responde "Olá!" para qualquer mensagem:
<?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Telegram\\Bot\\Api;\n\n$token = 'SEU_TOKEN_AQUI';\n$telegram = new Api($token);\n\n// Obtém a atualização recebida\n$update = $telegram->getWebhookUpdate();\n\n// Extrai o texto da mensagem e o ID do chat\n$message = $update->getMessage();\n$chatId