Criando um chatbot em PHP: do zero ao código funcional

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que PHP é uma ótima linguagem para criar chatbots?

\n

Quando 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.

\n

Nã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\n

O que você precisa para começar?

\n

Antes 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.
\n

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\n

Registrando o bot no Telegram

\n

Abra o Telegram, procure por BotFather (o bot oficial para criar bots) e envie o comando:

\n
/newbot
\n

O 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:

\n
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
\n

Guarde 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\n

Arquitetura do chatbot: Long Polling vs Webhook

\n

Existem 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.
\n

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\n

Passo 1: Instalando a biblioteca para a API do Telegram

\n

Para 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:

\n
composer require telegram-bot/api
\n

Essa 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.

\n\n

Passo 2: Script básico para processar mensagens recebidas

\n

Crie 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:

\n\n
<?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                

Blogs

Book Recommendations