Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Añadir comandos a un bot de Telegram (Python)

Tiempo de lectura: 3 minutos

Siguiendo el post del día anterior Cómo hacer un bot para Telegram (Python) vamos a completar este script en Python para añadir la funcionalidad de comandos al bot.

Los comandos sirven para indicar al bot la función que queremos realizar.

Un comando se escribe en el chat de Telegram de la siguiente forma:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/comando
/comando
/comando

Entonces vamos a hacer que el bot haga algo cuando escribamos ese comando de ejemplo.

Para ello recuperamos el código del día anterior

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# -*- coding: utf-8 -*-
# Importamos telebot
import telebot
# Añadimos el token que nos ha dado botfather
token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd
# Inicializamos al bot registrandolo con el token
bot = telebot.TeleBot(token_bot)
# Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot
# Pasamos mensajes (es una lista de mensajes)
def recibir_mensajes(mensajes):
# Recorremos la lista de mensajes:
for mensaje in mensajes:
# Ejemplo para imprimir el mensaje que llega
print('El mensaje es ', mensaje.json['text'])
# Obtiene id del chat para poder responder con el bot
id_chat = mensaje.chat.id
# Respondemos un texto usando el bot
bot.send_message(id_chat, "Te respondo y soy un Bot")
# Registramos la función dónde vamos a recibir los mensajes del chat
bot.set_update_listener(recibir_mensajes)
# Decimos que el bot no finalice
bot.polling(none_stop=True)
# -*- coding: utf-8 -*- # Importamos telebot import telebot # Añadimos el token que nos ha dado botfather token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd # Inicializamos al bot registrandolo con el token bot = telebot.TeleBot(token_bot) # Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot # Pasamos mensajes (es una lista de mensajes) def recibir_mensajes(mensajes): # Recorremos la lista de mensajes: for mensaje in mensajes: # Ejemplo para imprimir el mensaje que llega print('El mensaje es ', mensaje.json['text']) # Obtiene id del chat para poder responder con el bot id_chat = mensaje.chat.id # Respondemos un texto usando el bot bot.send_message(id_chat, "Te respondo y soy un Bot") # Registramos la función dónde vamos a recibir los mensajes del chat bot.set_update_listener(recibir_mensajes) # Decimos que el bot no finalice bot.polling(none_stop=True)
# -*- coding: utf-8 -*-

# Importamos telebot
import telebot

# Añadimos el token que nos ha dado botfather
token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd

# Inicializamos al bot registrandolo con el token
bot = telebot.TeleBot(token_bot)

# Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot
# Pasamos mensajes (es una lista de mensajes)

def recibir_mensajes(mensajes):
    # Recorremos la lista de mensajes:
    for mensaje in mensajes:
        # Ejemplo para imprimir el mensaje que llega
        print('El mensaje es ', mensaje.json['text'])
        # Obtiene id del chat para poder responder con el bot
        id_chat = mensaje.chat.id
        # Respondemos un texto usando el bot
        bot.send_message(id_chat, "Te respondo y soy un Bot")

# Registramos la función dónde vamos a recibir los mensajes del chat
bot.set_update_listener(recibir_mensajes)

# Decimos que el bot no finalice
bot.polling(none_stop=True)

Y vamos a añadir lo siguiente

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#Añadimos la función para ejecutar el comando
@bot.message_handler(commands=['comando'])
def comando(mensaje):
id_chat= mensaje.chat.id
bot.send_message( id_chat, 'Has invocado el comando')
#Añadimos la función para ejecutar el comando @bot.message_handler(commands=['comando']) def comando(mensaje): id_chat= mensaje.chat.id bot.send_message( id_chat, 'Has invocado el comando')
#Añadimos la función para ejecutar el comando
@bot.message_handler(commands=['comando'])
def comando(mensaje):
    id_chat= mensaje.chat.id
    bot.send_message( id_chat, 'Has invocado el comando')

En el parámetro

commands
commands, añadimos los comandos que van a ejecutar el método que hemos creado. Dentro de la función recuperamos el id_chat y utilizamos send_message para responder con el bot.

Si juntamos el código, queda de la siguiente forma:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# -*- coding: utf-8 -*-
# Importamos telebot
import telebot
# Añadimos el token que nos ha dado botfather
token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd
# Inicializamos al bot registrandolo con el token
bot = telebot.TeleBot(token_bot)
# Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot
# Pasamos mensajes (es una lista de mensajes)
def recibir_mensajes(mensajes):
# Recorremos la lista de mensajes:
for mensaje in mensajes:
# Ejemplo para imprimir el mensaje que llega
print('El mensaje es ', mensaje.json['text'])
# Obtiene id del chat para poder responder con el bot
id_chat = mensaje.chat.id
# Respondemos un texto usando el bot
bot.send_message(id_chat, "Te respondo y soy un Bot")
# Registramos la función dónde vamos a recibir los mensajes del chat
bot.set_update_listener(recibir_mensajes)
#Añadimos la función para ejecutar el comando
@bot.message_handler(commands=['comando'])
def comando(mensaje):
id_chat= mensaje.chat.id
bot.send_message( id_chat, 'Has invocado el comando')
# Decimos que el bot no finalice
bot.polling(none_stop=True)
# -*- coding: utf-8 -*- # Importamos telebot import telebot # Añadimos el token que nos ha dado botfather token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd # Inicializamos al bot registrandolo con el token bot = telebot.TeleBot(token_bot) # Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot # Pasamos mensajes (es una lista de mensajes) def recibir_mensajes(mensajes): # Recorremos la lista de mensajes: for mensaje in mensajes: # Ejemplo para imprimir el mensaje que llega print('El mensaje es ', mensaje.json['text']) # Obtiene id del chat para poder responder con el bot id_chat = mensaje.chat.id # Respondemos un texto usando el bot bot.send_message(id_chat, "Te respondo y soy un Bot") # Registramos la función dónde vamos a recibir los mensajes del chat bot.set_update_listener(recibir_mensajes) #Añadimos la función para ejecutar el comando @bot.message_handler(commands=['comando']) def comando(mensaje): id_chat= mensaje.chat.id bot.send_message( id_chat, 'Has invocado el comando') # Decimos que el bot no finalice bot.polling(none_stop=True)
# -*- coding: utf-8 -*-

# Importamos telebot
import telebot

# Añadimos el token que nos ha dado botfather
token_bot = 543759345:AHsjdfUUdfsi2kjksaKKKdmmmsddd

# Inicializamos al bot registrandolo con el token
bot = telebot.TeleBot(token_bot)

# Creamos una función dónde vamos a recibir todos los mensajes del chat en el que esté incluido el bot
# Pasamos mensajes (es una lista de mensajes)

def recibir_mensajes(mensajes):
    # Recorremos la lista de mensajes:
    for mensaje in mensajes:
        # Ejemplo para imprimir el mensaje que llega
        print('El mensaje es ', mensaje.json['text'])
        # Obtiene id del chat para poder responder con el bot
        id_chat = mensaje.chat.id
        # Respondemos un texto usando el bot
        bot.send_message(id_chat, "Te respondo y soy un Bot")

# Registramos la función dónde vamos a recibir los mensajes del chat
bot.set_update_listener(recibir_mensajes)

#Añadimos la función para ejecutar el comando
@bot.message_handler(commands=['comando'])
def comando(mensaje):
    id_chat= mensaje.chat.id
    bot.send_message( id_chat, 'Has invocado el comando')

# Decimos que el bot no finalice
bot.polling(none_stop=True)

Ahora podemos registrar el comando usando @BotFather de Telegram y seleccionando nuestro bot.

Aquí seleccionamos Edit Bot

Y ahora seleccionamos Edit Commands para poder añadir los comandos

Una vez añadidos, ya nos aparecerá la ayuda del comando dentro del chat de Telegram dónde tengamos incluido al Bot.

Nota: los comandos se escriben con el formato:

comando – descripción

comando – descripción

En caso de que haya varios se añaden con un salto de línea.

Y hasta aquí el tutorial de hoy.

0

2 comentarios en «Añadir comandos a un bot de Telegram (Python)»

Deja un comentario