Digressão lírica
Hoje, os bots são uma ferramenta multifuncional, tanto para negócios quanto para entretenimento. Pessoalmente, acredito que o futuro esteja com eles. Obviamente, depois de ler este artigo, você não poderá criar grandes projetos, mas interessar-se e começar é bastante.
Instalação e configuração
Para começar, vamos baixar o próprio python. Você pode fazer isso no
site oficial . Não se esqueça de verificar adicionar ao PATH durante a instalação! Depois de instalar o python, precisamos de um bom editor de código. O JetBrains vem em socorro com seu
PyCharm gratuito. Estamos perto, resta fazer o download da biblioteca de telebot. Para fazer isso, vá para a linha de comando e escreva:
pip install pytelegrambotapi
Se tudo correu bem, podemos continuar!
VPN
Acho que todo mundo sabe sobre o bloqueio de telegramas na Rússia e a única solução, como sempre, é a VPN. Pessoalmente, recomendo o
Windscribe , pois eles te dão 2 GB. o tráfego é totalmente gratuito!
Pai bot
Na busca por telegrama, encontramos Bot Farher e criamos nosso bot usando o comando / newbot. Em seguida, digite o nome e o nome de usuário. Observe que o nome de usuário deve terminar em bot!

Como você pode ver, recebemos um token de API especial com o qual você pode controlar seu bot (no meu caso, é:
776550937: AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM ). Você pode se lembrar do seu token, mas eu recomendo anotá-lo.
Código
Chegou o momento em que todos estavam esperando. Abra o PyCharm e crie um novo projeto.

Aqui eu recomendo colocar tudo como meu (o nome, é claro, pode ser alterado). Depois de criar o projeto, vamos criar um arquivo no qual nosso código estará. Clique com o botão direito do mouse na pasta do seu projeto e, em seguida, Novo → Arquivo Python. Ok, vamos começar a escrever código. Importe a biblioteca de telebot usando:
import telebot
Agora você precisa criar a variável bot. Na verdade, o nome da variável pode ser qualquer coisa, mas estou acostumado a escrever bot.
bot = telebot.TeleBot(' ')
Escreveremos o decorador
bot .message_handler (), com o qual nosso bot responderá ao comando / start. Para fazer isso, escrevemos command = ['start'] entre parênteses. Como resultado, devemos obter o seguinte:
@bot.message_handler(commands=['start'])
Se você tentar iniciar seu bot (RMB-> Executar), nada funcionará para você. Primeiro, no final do código, precisamos escrever bot.polling (). Isso é necessário para que o bot não desligue imediatamente, mas funcione e verifica se há uma nova mensagem no servidor. E segundo, nosso bot, mesmo que procure mensagens, ainda não será capaz de responder a nada. É hora de consertar! Após nosso decorador, criamos a função start_message, que aceita o parâmetro message (o nome da função pode ser qualquer coisa). Em seguida, vamos implementar o envio de mensagens do próprio bot. Na função, escrevemos bot.send_message (message.chat.id, 'Olá, você me escreveu / start'). Veja o que você deve obter:
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 verificar ...

Ótimo, nosso bot funciona! Para que ele responda não apenas aos comandos, mas também às mensagens, crie um novo
bot decorador .message_handler () e entre parênteses escreva content_types = ['text']. Em geral, existem muitos tipos de conteúdo, por exemplo, localização, foto, áudio, adesivo etc. Mas precisamos responder ao texto, certo? Portanto, criamos uma função send_text que aceita um parâmetro de mensagem. Na função, escrevemos a condição:
@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, ', ')
Se o texto da mensagem for "Olá", o bot responderá "Olá, meu criador" e, se o texto da mensagem for "Tchau", o bot responderá "Adeus, criador". Aqui eu acho que está tudo claro. Mas você provavelmente se perguntou, e se o usuário escreve "olá" ou "Olá", o que você deve fazer nessa situação? Tudo é bem simples! Na condição, após o message.text, escreva a função .lower () e, no texto, substitua todas as letras maiúsculas por minúsculas. Agora, nosso bot responde não apenas ao “olá”, mas também ao “PrivT” e até ao “PRIVET”.

Aqui está o que você deve obter:
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()
Bem, descobrimos o texto, mas como enviar um adesivo, por exemplo? Tudo é simples! Cada adesivo possui seu próprio ID, respectivamente, sabendo o ID, podemos enviá-lo. Existem duas maneiras de obter o ID do adesivo. O primeiro (simples) - através do bot especial "Qual é o ID do adesivo?"

Bem, a segunda maneira, para aqueles que não estão procurando maneiras fáceis. Criamos um novo decorador
bot .message_handler (), somente entre parênteses escrevemos content_types = ['sticker']. Então tudo está como sempre. Criamos uma função que aceita o parâmetro message, mas aqui escrevemos print (message). Nós lançamos o bot.

Olha, assim que enviei o adesivo, ele imediatamente exibiu informações no console e, no final, será a nossa identificação de adesivo (file_id). Vamos garantir que, quando o usuário enviar o bot "Eu te amo", o bot responda com um adesivo. Não há necessidade de criar um novo decorador, apenas adicionamos a condição anterior. Mas, em vez de bot.send_message (), escrevemos bot.send_sticker () e, em vez do texto, escrevemos o ID do adesivo.

Parabéns, tudo deu certo! Estou pensando em como enviar áudio, fotos e geolocalização, você vai descobrir por si mesmo. Quero mostrar como fazer um teclado que o bot mostrará na inicialização. Isso tornará mais difícil. Criamos a variável keyboard1, na qual escrevemos telebot.types.ReplyKeyboardMarkup (). Esta função chama o teclado. Em seguida, crie as linhas, mas lembre-se de que não pode haver mais de 12 linhas! Para criá-los, escreva keyboard1.row (). Entre parênteses, escreva o que quiser; pessoalmente, escreverei "Olá" e "Tchau". Agora, para chamar o teclado, vamos adicionar reply_markup = keyboard1 à função de enviar uma mensagem na inicialização. Aqui está o que você deve obter:
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)
Lançamos o bot ...

Você vê que o teclado é meio grande. Para corrigir isso, você só precisa registrar True em ReplyKeyboardMarkup (). Bem, se você deseja que o teclado oculte assim que o usuário clica nele, escreva outro True. Você pode ler mais sobre o que esses True significam na
documentação oficial .
keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True)
Bem, isso é tudo! É claro que nem todos os bots são possíveis em telegrama, mas eu mostrei as principais características. Obrigado pela atenção.
Código fonte:
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()
Se você tiver alguma dúvida - você pode escrever para o telegrama
dimagorovtsov