Como criar um bot em Python com telegram-bot-api? Guia completo
Introdução aos bots do Telegram
No mundo atual, os mensageiros se tornaram parte essencial da vida, e os bots são ferramentas práticas para automatizar tarefas, interagir com usuários e até gerenciar negócios. Se você quer criar seu próprio bot para o Telegram de forma rápida e sem complicações, a linguagem Python e a biblioteca python-telegram-bot são a escolha ideal.
Passo 1. Obtendo o token de acesso com o BotFather
Antes de escrever código, é necessário registrar seu bot no Telegram. Para isso:
- Abra o Telegram e procure pelo usuário @BotFather.
- Digite o comando /start e depois /newbot.
- Defina um nome e um username único para seu bot (por exemplo, MeuPrimeiroBotPython).
- Após o registro, o BotFather fornecerá um token de API. Copie-o — você precisará dele no código.
Passo 2. Instalação das bibliotecas necessárias
Para interagir com a API do Telegram, usaremos a biblioteca python-telegram-bot. Instale-a via pip:
pip install python-telegram-bot --upgrade
Passo 3. Estrutura básica do bot
Agora vamos criar um bot simples que responde ao comando /start:
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Olá! Eu sou seu primeiro bot em Python!")
if __name__ == '__main__':
app = ApplicationBuilder().token("SEU_TOKEN_AQUI").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
Explicação do código:
ApplicationBuildereCommandHandlersão ferramentas básicas para processar comandos.- A função
startreage ao comando /start e envia uma mensagem de texto ao usuário. - O método
run_polling()inicia o bot e começa a verificar novas mensagens.
Passo 4. Processamento de mensagens do usuário
Vamos adicionar o tratamento de mensagens de texto comuns:
from telegram.ext import MessageHandler, filters
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
received_text = update.message.text
await update.message.reply_text(f"Você escreveu: {received_text}")
if __name__ == '__main__':
app = ApplicationBuilder().token("SEU_TOKEN_AQUI").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()
Agora o bot responderá a qualquer mensagem de texto, repetindo o que você escreveu.
Passo 5. Adicionando botões e menu interativo
Os bots ficam muito mais úteis quando você adiciona botões:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
keyboard = [
[InlineKeyboardButton("Botão 1", callback_data='button1')],
[InlineKeyboardButton("Botão 2", callback_data='button2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text('Escolha uma opção:', reply_markup=reply_markup)
async def button_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
query = update.callback_query
await query.answer()
await query.edit_message_text(text=f"Você clicou em: {query.data}")
if __name__ == '__main__':
from telegram.ext import CallbackQueryHandler
app = ApplicationBuilder().token("SEU_TOKEN_AQUI").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("menu", menu))
app.add_handler(CallbackQueryHandler(button_handler))
app.add_handler