Introdução: por que PHP é uma excelente escolha para um chat-bot?
\nVocê 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.
\nNeste 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\nO que é um chat-bot e como ele funciona?
\nAntes 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
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\nPreparação: o que você precisa para começar?
\nPara 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
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.
Passo 1. Registrando o bot no Telegram
\nVá 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).
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).
Importante: Não mostre seu token a ninguém! Esta é a senha do seu bot.
\n\nPasso 2. Eco-bot mais simples em PHP (Webhook)
\nCrie um arquivo bot.php na raiz do seu site. Este script receberá requisições do Telegram e responderá com o mesmo texto (eco).
<?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\nComo isso funciona?
\n- \n
- O Telegram envia uma requisição POST para o seu arquivo
bot.php. \n - Lemos a entrada