Bot do Telegram em PHP: do zero ao primeiro cumprimento
\n\nQuando se trata de criar bots para o Telegram, a primeira coisa que vem à mente é Python. E isso é lógico: existe a elegante biblioteca python-telegram-bot, muitos tutoriais e uma enorme comunidade. Mas o que fazer se sua principal stack é PHP? Ou se você quer rapidamente montar um bot simples para notificações sem implantar um servidor separado em Python?
A boa notícia: Telegram Bot API não está vinculado a uma linguagem. É uma interface HTTP comum, e o PHP lida com ela tão bem quanto qualquer outra. Neste artigo, vamos abordar como criar um bot do Telegram em PHP do zero: desde o registro no BotFather até um bot completo que responde a comandos, envia mensagens e sabe processar requisições callback. Tudo com exemplos reais de código, sem enrolação.
\n\nPor que PHP para um bot do Telegram é normal?
\n\nMuitos desenvolvedores são céticos em relação ao PHP no contexto de bots. Dizem que é uma linguagem para "sites improvisados", não para uma API real. Na prática, o PHP lida muito bem com o papel de manipulador de servidor: é simples, previsível e funciona em qualquer hospedagem. Para um bot que não exige super desempenho (e a maioria dos bots é assim), o PHP é a escolha ideal.
\n\nAlém disso, se você já tem um site em PHP, pode hospedar o bot no mesmo servidor. Sem necessidade de workers adicionais, daemons ou configurações complexas. Apenas um arquivo bot.php que fica no webhook e processa as requisições do Telegram.
O que você precisa para começar
\n\n- \n
- Hospedagem com PHP 7.4+ (qualquer uma serve, até a hospedagem compartilhada mais barata). \n
- Acesso a HTTPS — o Telegram exige que o webhook funcione em protocolo seguro. Pode usar Let's Encrypt. \n
- Conta no Telegram — óbvio, mas sem ela não vai funcionar. \n
- Conhecimento básico de PHP — suficiente para entender como funções, arrays e cURL funcionam. \n
Se você tem tudo isso, vamos nessa.
\n\nPasso 1. Registrando o bot no BotFather
\n\nInicie uma conversa no Telegram com @BotFather — ele é o "criador" principal de bots. Envie o comando:
\n\n/newbot\n\nSerá solicitado que você insira o nome do bot (que aparecerá nos contatos) e um username (deve terminar com bot). Depois disso, você receberá um token — uma string longa como:
1234567890:ABCdefGhIJKlmNoPQRsTUVwXYZ\n\nEsta é a chave de acesso ao seu bot. Não mostre para ninguém — qualquer pessoa que souber o token pode controlar o bot.
\n\nTambém recomendo definir imediatamente um avatar e uma descrição usando os comandos /setuserpic e /setdescription. Não é obrigatório, mas torna o bot mais amigável.
Passo 2. Escolhendo o método de recebimento de atualizações
\n\nO Telegram Bot API oferece duas opções:
\n\n- \n
- Polling (long polling) — você constantemente consulta o servidor do Telegram perguntando "Tem novas mensagens?". Funciona, mas exige execução contínua do script (por exemplo, via cron). \n
- Webhook — o próprio Telegram envia uma requisição POST para o seu servidor quando uma nova mensagem chega. É mais conveniente e rápido. \n
Vamos usar webhook. Primeiro, vamos verificar se seu servidor está acessível pela internet via HTTPS. Se você não tem um certificado SSL, use Cloudflare (eles têm SSL gratuito) ou compre um certificado por alguns centavos.
\n\nConfigurando o webhook
\n\nEnvie uma requisição GET para a URL (pode abrir no navegador):
\n\nhttps://api.telegram.org/bot<TOKEN>/setWebhook?url=https://seu_site/bot.php\n\nSubstitua <TOKEN> pelo seu token real e https://seu_site/bot.php pelo caminho real do seu script. Em resposta, você deve receber um JSON:
{"ok": true, "result": true, "description": "Webhook was set"}