Digresión lírica
Los bots de hoy son una herramienta multifuncional, tanto para negocios como para entretenimiento. Personalmente, creo que el futuro está en ellos. Por supuesto, después de leer este artículo, no podrá crear grandes proyectos, pero interesarse y comenzar es bastante.
Instalación y configuración
Para comenzar, descarguemos Python. Puedes hacerlo en el
sitio web oficial . ¡No olvide marcar agregar a RUTA durante la instalación! Después de instalar Python, necesitamos un buen editor de código. JetBrains viene al rescate con su
PyCharm gratis. Estamos cerca, queda por descargar la biblioteca telebot. Para hacer esto, vaya a la línea de comando y escriba:
pip install pytelegrambotapi
Si todo salió bien, ¡podemos continuar!
VPN
Creo que todos saben sobre el bloqueo de telegramas en Rusia y la única solución, como siempre, es vpn. Personalmente, recomiendo
Windscribe , como te dan 2 GB. el tráfico es completamente gratis!
Padre bot
En la búsqueda de telegramas, encontramos Bot Farher y creamos nuestro bot usando el comando / newbot. Luego ingrese el nombre y nombre de usuario. Tenga en cuenta que el nombre de usuario debe terminar en bot!

Como puede ver, nos dieron un token de API especial con el que puede controlar su bot (en mi caso, es:
776550937: AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM ). Puede recordar su token, pero le recomiendo que lo escriba.
Código
Ha llegado el momento que todos han estado esperando. Abra PyCharm y cree un nuevo proyecto.

Aquí recomiendo poner todo como mío (el nombre, por supuesto, se puede cambiar). Después de crear el proyecto, creemos un archivo en el que estará nuestro código. Haga clic derecho en la carpeta con su proyecto, luego Nuevo → Archivo Python. Ok, empecemos a escribir código. Importe la biblioteca de telebot usando:
import telebot
Ahora necesita crear la variable bot. En realidad, el nombre de la variable puede ser cualquier cosa, pero estoy acostumbrado a escribir bot.
bot = telebot.TeleBot(' ')
Escribiremos el decorador
bot .message_handler (), con el cual nuestro bot responderá al comando / start. Para hacer esto, escribimos los comandos = ['inicio'] entre paréntesis. Como resultado, deberíamos obtener esto:
@bot.message_handler(commands=['start'])
Si intenta iniciar su bot (RMB-> Ejecutar), nada funcionará para usted. Primero, al final del código, necesitamos escribir bot.polling (). Esto es necesario para que el bot no se apague inmediatamente, sino que funcione y verifique si hay un nuevo mensaje en el servidor. Y en segundo lugar, nuestro bot, incluso si busca mensajes, aún no podrá responder nada. ¡Es hora de arreglarlo! Después de nuestro decorador, creamos la función start_message, que tomará el parámetro del mensaje (el nombre de la función puede ser cualquier cosa). A continuación, implementemos el envío de mensajes desde el propio bot. En la función, escribimos bot.send_message (message.chat.id, 'Hola, me escribiste / inicio'). Vea lo que debe obtener:
import telebot bot = telebot.TeleBot('776550937:AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM') @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, ', /start') bot.polling()
Vamos a ver ...

¡Genial, nuestro bot funciona! Para que responda no solo a los comandos, sino también a los mensajes, cree un nuevo decorador
bot .message_handler (), y entre paréntesis escriba content_types = ['text']. En general, hay muchos tipos de contenido, por ejemplo, ubicación, foto, audio, adhesivo, etc. Pero tenemos que responder al texto, ¿verdad? Por lo tanto, creamos una función send_text que toma un parámetro de mensaje. En la función, escribimos la condición:
@bot.message_handler(content_types=['text']) def send_text(message): if message.text == '': bot.send_message(message.chat.id, ', ') elif message.text == '': bot.send_message(message.chat.id, ', ')
Si el texto del mensaje es "Hola", entonces el bot responde "Hola, mi creador", y si el texto del mensaje es "Adiós", el bot responderá "Adiós, creador". Aquí creo que todo está claro. Pero lo más probable es que haya hecho una pregunta, y si el usuario escribe "hola" o "Hola", ¿qué debe hacerse en esta situación? ¡Todo es bastante simple! En la condición, después del mensaje.text, escriba la función .lower (), y en el texto reemplace todas las letras mayúsculas por minúsculas. Ahora nuestro bot responde no solo a "hola", sino también a "PrivT" e incluso a "PRIVET".

Esto es lo que debe obtener:
import telebot bot = telebot.TeleBot('776550937:AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM') @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, ', /start') @bot.message_handler(content_types=['text']) def send_text(message): if message.text.lower() == '': bot.send_message(message.chat.id, ', ') elif message.text.lower() == '': bot.send_message(message.chat.id, ', ') bot.polling()
Bueno, descubrimos el texto, pero ¿cómo enviar una pegatina, por ejemplo? ¡Todo es simple! Cada pegatina tiene su propia identificación, respectivamente, conociendo la identificación, podemos enviarla. Hay dos formas de obtener la identificación de la pegatina. El primero (simple): a través del bot especial "¿Cuál es la identificación de la etiqueta?"

Bueno, la segunda forma, para aquellos que no buscan formas fáciles. Creamos un nuevo decorador
bot .message_handler (), solo entre paréntesis escribimos content_types = ['sticker']. Entonces todo es como siempre. Creamos una función que toma el parámetro del mensaje, pero aquí escribimos print (mensaje). Lanzamos el bot.

Mire, tan pronto como envié la pegatina, inmediatamente mostró información en la consola, y al final aparecerá nuestra identificación de pegatina (file_id). Asegurémonos de que cuando el usuario envía el bot "Te amo", el bot responde con una pegatina. No es necesario crear un nuevo decorador, solo agregamos la condición anterior. Pero en lugar de bot.send_message () escribimos bot.send_sticker (), y en lugar del texto, escribimos la identificación de la pegatina.

¡Felicitaciones, todo salió bien! Estoy pensando en cómo enviar audio, fotos y geolocalización, lo descubrirás por ti mismo. Quiero mostrarle cómo hacer un teclado que el bot le mostrará al inicio. Esto lo hará más difícil. Creamos la variable keyboard1, en la que escribimos telebot.types.ReplyKeyboardMarkup (). Esta función llama al teclado. A continuación, cree las filas, ¡pero recuerde que no puede haber más de 12 filas! Para crearlos, escriba keyboard1.row (). Entre paréntesis, escriba lo que quiera, personalmente, escribiré "Hola" y "Adiós". Ahora, para llamar al teclado, agregue reply_markup = keyboard1 a la función de enviar un mensaje al inicio. Esto es lo que debe obtener:
keyboard1 = telebot.types.ReplyKeyboardMarkup() keyboard1.row('', '') @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, ', /start', reply_markup=keyboard1)
Lanzamos el bot ...

Usted ve que el teclado es algo grande. Para solucionar esto, solo necesita registrar True en ReplyKeyboardMarkup (). Bueno, si desea que el teclado se oculte tan pronto como el usuario haga clic en él, escriba otro True. Puede leer más sobre lo que significan estos Verdaderos en la
documentación oficial .
keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True)
Bueno, eso es todo! Por supuesto, esto no es todo bots posibles en Telegram, pero te mostré las características principales. Gracias por su atencion
Código fuente:
import telebot bot = telebot.TeleBot('< >') keyboard1 = telebot.types.ReplyKeyboardMarkup() keyboard1.row('', '') @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, ', /start', reply_markup=keyboard1) @bot.message_handler(content_types=['text']) def send_text(message): if message.text.lower() == '': bot.send_message(message.chat.id, ', ') elif message.text.lower() == '': bot.send_message(message.chat.id, ', ') elif message.text.lower() == ' ': bot.send_sticker(message.chat.id, 'CAADAgADZgkAAnlc4gmfCor5YbYYRAI') @bot.message_handler(content_types=['sticker']) def sticker_id(message): print(message) bot.polling()
Si tiene alguna pregunta, puede escribir a telegram
dimagorovtsov