Em Habré, e não apenas isso, tanto se falou sobre bots que é até demais. Mas, tendo me interessado neste tópico há algumas semanas, eu ainda não conseguia encontrar material normal: todos os artigos eram para bonecos e estavam limitados a enviar uma mensagem em resposta a uma mensagem de usuário ou eram irrelevantes. Isso me levou a escrever um artigo que explicasse a um iniciante como eu como escrever e lançar um bot mais ou menos significativo (com a possibilidade de expandir a funcionalidade).
Parte 1: Registrar um bot
A parte mais simples e mais descrita. Muito brevemente: você precisa encontrar o bot do 
@BotFather , escrever para ele 
/ start ou 
/ newbot , preencher os campos que ele pede (o nome do bot e seu nome abreviado) e receber uma mensagem com o token do bot e um link para a documentação. O token deve ser salvo, de preferência confiável, pois é a única chave para autorizar o bot e interagir com ele.
Parte 2: Preparando para escrever código
Como já mencionado no título, escreveremos o bot em Python. Este artigo descreve como trabalhar com a biblioteca PyTelegramBotAPI (Telebot). Se você não possui o Python instalado, primeiro você precisa fazer isso: no terminal Linux, é necessário inserir
sudo apt-get install python python-pip 
Se você usa o Windows, precisa fazer o download do Python no site oficial.
Depois, no terminal Linux ou no prompt de comando do Windows, digite
 pip install pytelegrambotapi 
Agora você está pronto para escrever o código.
Parte 3: receba mensagens e diga "Olá"
Uma pequena digressão. Um telegrama pode informar o bot sobre as ações do usuário de duas maneiras: por meio de uma resposta a uma solicitação do servidor (Long Poll) e pelo Webhook, quando o próprio servidor do Telegram envia uma mensagem que alguém escreveu ao bot. O segundo método claramente parece melhor, mas requer um endereço IP dedicado, e o SSL é instalado no servidor. Neste artigo, quero falar sobre como escrever um bot, não como configurar um servidor, portanto usaremos a pesquisa longa.Abra seu editor de texto favorito e vamos escrever o código bot!
A primeira coisa a fazer é importar nossa biblioteca e conectar o token do bot:
 import telebot; bot = telebot.TeleBot('% %'); 
Agora declare um método para receber mensagens de texto:
 @bot.message_handler(content_types=['text']) def get_text_messages(message): 
Nesta seção do código, declaramos um ouvinte para mensagens de texto e um método para processá-las. O campo content_types pode assumir valores diferentes, e não apenas um, por exemplo
 @bot.message_handler(content_types=['text', 'document', 'audio']) 
Irá responder a mensagens de texto, documentos e áudio. Mais detalhes podem ser encontrados na 
documentação oficial.Agora vamos adicionar um pouco de funcionalidade ao nosso método: se o usuário escrever "Olá" para nós, dizeremos "Olá, como posso ajudá-lo?". E se eles escreverem o comando "/ help", solicitaremos que o usuário escreva "Olá":
 if message.text == "": bot.send_message(message.from_user.id, ",     ?") elif message.text == "/help": bot.send_message(message.from_user.id, " ") else: bot.send_message(message.from_user.id, "   .  /help.") 
Este pedaço de código não requer comentários, como me parece. Agora precisamos adicionar apenas uma linha ao nosso código (fora de todos os métodos).
 bot.polling(none_stop=True, interval=0) 
Agora, nosso bot perguntará constantemente ao servidor do Telegram "Alguém escreveu para mim?" E se escrevermos para o nosso bot, o Telegram enviará a nossa mensagem. Nós salvamos o arquivo inteiro e escrevemos no console
 python bot.py 
Onde bot.py é o nome do nosso arquivo.
Agora você pode escrever um bot e ver o resultado:
Parte 4: Botões e segmentos de mensagens
O envio de mensagens é sem dúvida divertido, mas é ainda mais divertido ter um diálogo com o usuário: faça perguntas e obtenha respostas para ele. Suponha que agora nosso bot pergunte ao usuário seu nome, sobrenome e idade. Para isso, usaremos o método register_next_step_handler do bot:
 name = ''; surname = ''; age = 0; @bot.message_handler(content_types=['text']) def start(message): if message.text == '/reg': bot.send_message(message.from_user.id, "  ?"); bot.register_next_step_handler(message, get_name);  
E assim, gravamos os dados do usuário. Este exemplo mostra um exemplo muito simplificado; para o bem, você precisa armazenar dados intermediários e estados do usuário no banco de dados, mas hoje estamos trabalhando com um bot e não com bancos de dados. O toque final - pedimos aos usuários para confirmarem que tudo foi inserido corretamente, mas não apenas assim, mas com os botões! Para fazer isso, edite o código do método get_age um pouco
 def get_age(message): global age; while age == 0:  
E agora o nosso bot envia o teclado, mas se você clicar nele, nada acontecerá. Porque não escrevemos um método manipulador. Vamos escrever:
 @bot.callback_query_handler(func=lambda call: True) def callback_worker(call): if call.data == "yes": #call.data  callback_data,       .... #  ,    bot.send_message(call.message.chat.id, ' : )'); elif call.data == "no": ... # 
Resta apenas anexar uma linha ao início do arquivo:
 from telebot import types 
Isso é tudo, salve e execute nosso bot: