Script Acceso Libre 20 Feb, 2026

Script Python: Bot de Telegram con python-telegram-bot

Bot de Telegram funcional con comandos, teclados inline, manejo de estados y persistencia. Base ideal para bots de notificación, soporte o automatización.

#python #telegram #bot #chatbot #automatizacion

Contenido

Bot de Telegram Profesional

Un bot completo con la librería python-telegram-bot v20+. Incluye comandos, conversaciones con estados, y teclados interactivos.

Instalación

pip install python-telegram-bot[job-queue]

Código base

from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import (
    Application, CommandHandler, CallbackQueryHandler,
    ConversationHandler, MessageHandler, filters
)

TOKEN = "tu_token_aqui"
WAITING_NAME, WAITING_EMAIL = range(2)

async def start(update: Update, context):
    keyboard = [
        [InlineKeyboardButton("Registrarme", callback_data="register")],
        [InlineKeyboardButton("Ver mi perfil", callback_data="profile")],
    ]
    await update.message.reply_text(
        "¡Bienvenido! ¿Qué deseas hacer?",
        reply_markup=InlineKeyboardMarkup(keyboard)
    )

async def register_start(update: Update, context):
    query = update.callback_query
    await query.answer()
    await query.edit_message_text("¿Cuál es tu nombre?")
    return WAITING_NAME

async def receive_name(update: Update, context):
    context.user_data['name'] = update.message.text
    await update.message.reply_text("¿Y tu email?")
    return WAITING_EMAIL

async def receive_email(update: Update, context):
    context.user_data['email'] = update.message.text
    name = context.user_data['name']
    await update.message.reply_text(
        f"¡Registrado! {name}, te contactaremos pronto."
    )
    return ConversationHandler.END

def main():
    app = Application.builder().token(TOKEN).build()

    conv_handler = ConversationHandler(
        entry_points=[CallbackQueryHandler(register_start, pattern="register")],
        states={
            WAITING_NAME: [MessageHandler(filters.TEXT, receive_name)],
            WAITING_EMAIL: [MessageHandler(filters.TEXT, receive_email)],
        },
        fallbacks=[CommandHandler("cancel", lambda u, c: ConversationHandler.END)],
    )

    app.add_handler(CommandHandler("start", start))
    app.add_handler(conv_handler)
    app.run_polling()

if __name__ == "__main__":
    main()

Recurso Externo

Este recurso incluye un enlace externo. Regístrate para acceder.

Inicia Sesión para Acceder

Únete a la Comunidad

Regístrate gratis para descargar archivos, guardar recursos en favoritos, ganar XP y acceder a cursos y el foro de la comunidad.

¿Ya tienes cuenta? Inicia sesión

Erik Taveras

Autor

Erik Taveras

Recursos Relacionados