Criar bot Python com telegram-bot-api: guia completo

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

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:

  1. Abra o Telegram e procure pelo usuário @BotFather.
  2. Digite o comando /start e depois /newbot.
  3. Defina um nome e um username único para seu bot (por exemplo, MeuPrimeiroBotPython).
  4. 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:

  • ApplicationBuilder e CommandHandler são ferramentas básicas para processar comandos.
  • A função start reage 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                

Blogs

Book Recommendations