Chat-bots em PHP: guia prático para iniciantes

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

Introdução: por que PHP é uma excelente escolha para um chat-bot?

\n

Você já se perguntou como funcionam aqueles assistentes inteligentes que respondem a perguntas no Telegram, VK ou em sites? Muitos pensam que para criar um chat-bot é preciso saber Python ou Node.js. Mas a verdade é que um chat-bot em PHP não só é possível, como também é muito conveniente. PHP é uma linguagem madura com uma enorme comunidade e é perfeita para prototipagem rápida e implantação de bots.

\n

Neste guia, percorreremos o caminho do zero absoluto até um bot do Telegram em PHP funcional. Abordaremos duas abordagens: um eco-bot simples no Localhost e um bot com conexão a um banco de dados. Spoiler: haverá muito código que você pode copiar e executar agora mesmo.

\n\n

O que é um chat-bot e como ele funciona?

\n

Antes de escrever código, vamos entender a arquitetura. Um chat-bot é um programa que recebe uma mensagem de um usuário, a processa e envia uma resposta. No contexto do Telegram (a plataforma mais popular para bots), o esquema é o seguinte:

\n
    \n
  • O usuário escreve para o bot no Telegram.
  • \n
  • O Telegram envia uma requisição POST para o seu servidor (Webhook) ou você mesmo consulta o servidor periodicamente (Long Polling).
  • \n
  • Seu script PHP processa a requisição e envia uma resposta através da API do Telegram.
  • \n
\n

Usaremos o Webhook — é uma forma moderna e rápida. Imagine que o Telegram bate na porta do seu servidor toda vez que uma nova mensagem chega. Conveniente, não é?

\n\n

Preparação: o que você precisa para começar?

\n

Para criar um chat-bot simples em PHP, você precisará de:

\n
    \n
  • Hospedagem ou servidor local (OpenServer, XAMPP, MAMP) com PHP 7.4+.
  • \n
  • Acesso à internet (para registrar o bot no Telegram).
  • \n
  • Conhecimentos básicos de PHP (variáveis, funções, trabalho com JSON).
  • \n
\n

Se você não tem hospedagem, não se preocupe — na fase de teste, você pode usar o Localhost com a ferramenta ngrok, que cria uma URL pública temporária. Mas falaremos disso mais tarde.

\n\n

Passo 1. Registrando o bot no Telegram

\n

Vá para o Telegram, encontre o BotFather (o bot oficial para criar bots) e digite o comando /newbot. Responda às perguntas: dê um nome (por exemplo, MyTestBot) e um username (obrigatoriamente terminando em bot, por exemplo my_test_pythonlib_bot).

\n

Após o registro bem-sucedido, o BotFather fornecerá um token — esta é a chave de acesso à API. Ele se parece com isto: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Guarde-o em um local seguro (de preferência em um arquivo .env, mas para simplificar, vamos codificá-lo diretamente por enquanto).

\n

Importante: Não mostre seu token a ninguém! Esta é a senha do seu bot.

\n\n

Passo 2. Eco-bot mais simples em PHP (Webhook)

\n

Crie um arquivo bot.php na raiz do seu site. Este script receberá requisições do Telegram e responderá com o mesmo texto (eco).

\n\n
<?php\n// Obtém os dados do Telegram\n$content = file_get_contents("php://input");\n$update = json_decode($content, true);\n\n// Verifica se há mensagem\nif (!$update) {\n    exit;\n}\n\n// Extrai o ID do chat e o texto da mensagem\n$chat_id = $update['message']['chat']['id'];\n$text = $update['message']['text'];\n\n// Token do seu bot\n$token = "SEU_TOKEN_AQUI";\n\n// Envia a resposta (eco)\n$url = "https://api.telegram.org/bot{$token}/sendMessage";\n$data = [\n    'chat_id' => $chat_id,\n    'text' => "Você escreveu: " . $text\n];\n\n// Usa cURL para enviar a requisição\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, 1);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $data);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$result = curl_exec($ch);\ncurl_close($ch);\n?>
\n\n

Como isso funciona?

\n
    \n
  1. O Telegram envia uma requisição POST para o seu arquivo bot.php.
  2. \n
  3. Lemos a entrada

Blogs

Book Recommendations