Como construir um bot de telegrama básico com Python 3

Como construir um bot de telegrama básico com Python 3

Se você é um usuário do Telegram, provavelmente já teve uma ‘conversa’ com um chatbot. Com sua incrível capacidade de personalização, os bots do Telegram oferecem uma variedade de vantagens --- seja para automatizar tarefas ou apenas se divertir um pouco com jogos em seu grupo de bate-papo.





Enquanto alguns podem achar que desenvolver um bot é uma tarefa difícil, realmente não é. Com o planejamento correto, você pode ter um bot do Telegram instalado e funcionando em menos de uma hora! Veja como criar um simples bot do Telegram que exibe lindas fotos de gatos da Internet quando solicitado.





Começando

Para este tutorial, vamos usar Python 3, o python-telegram-bot e solicitações de biblioteca e TheCatAPI .





Cada bot no Telegram tem um token único que o ajuda a se comunicar com API de bot para usar a interface de mensagens do aplicativo. A API do bot, um dos recursos mais populares do Telegram entre os desenvolvedores, permite que você use suas mensagens como uma interface.

como iniciar uma sequência rápida no snapchat

Para obter o token, inicie uma conversa com @BotFather que, como o nome sugere, é um bot oficial que permite criar e personalizar seus próprios bots. Você pode acessar o bot usando o link fornecido ou, alternativamente, pesquisar por ‘@botfather’ no Telegram.



Uma vez no chat, crie seu bot digitando o / newbot comando. Continue a definir o nome e nome de usuário do seu bot (decidimos nomear o nosso @pawsomebot). Em seguida, você receberá um token exclusivo para o seu bot.

Agora que temos todos os pré-requisitos, é hora de chegar à parte emocionante!





Instalando Bibliotecas

Se você estiver usando o Windows, abra o prompt de comando e digite os seguintes comandos:

pip install python-telegram-bot
pip install requests

Se você estiver usando macOS ou Linux, use os seguintes comandos em seu terminal. Além disso, no Linux, certifique-se de estar conectado como um usuário com privilégios sudo.





pip3 install python-telegram-bot
pip3 install requests

Escrevendo o programa

Crie uma nova pasta em seu computador e abra-a em seu editor favorito. Crie um novo arquivo com o nome main.py. Este arquivo conterá o código-fonte do seu bot.

Agora, vamos importar as bibliotecas que instalamos anteriormente, juntamente com algumas de suas funções integradas.

from telegram.ext import Updater, CommandHandler
import requests
import re

O fluxo do programa daqui em diante é acessar TheCatAPI, obter a URL de uma imagem aleatória e enviar essa imagem para o chat do usuário.

Vamos começar com uma função para obter o URL da imagem, o que pode ser feito usando o módulo de solicitações. Nesta função, carregamos os dados JSON de um arquivo aleatório fornecido por TheCatAPI e extraímos sua URL para uso posterior. Para ver o formato do objeto JSON, vá para https://api.thecatapi.com/v1/images/search no seu navegador. Você notará algo assim:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

Observe que o objeto JSON é uma matriz que contém um dicionário. Este dicionário contém o URL com a chave 'url'. Para extrair a URL, precisamos fazer referência ao primeiro elemento da matriz e, em seguida, à chave relevante.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

Em seguida, precisamos enviar esta imagem para o bate-papo de um usuário. Para isso, precisamos de um URL de imagem, bem como a ID exclusiva do chat do usuário. Vamos criar uma função de wrapper para fazer isso. Primeiro, chamamos o getUrl () . função para obter a URL de uma imagem aleatória --- esta URL muda toda vez que seu programa itera por meio da função.

Em seguida, obtém-se o ID de bate-papo do usuário destinatário, que define o local de destino do bot para mensagens e analisa a URL por meio da API do Bot embutida enviar foto() função.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Para saber mais sobre as várias funções integradas da API do Bot e como elas funcionam, sinta-se à vontade para verificar o documentação oficial após este tutorial.

Por fim, vamos criar uma função que controla o funcionamento geral do bot. Esta função --- convencionalmente chamada de main () --- é onde enviamos uma solicitação HTTP para a API do Bot usando o token que obtivemos no início do tutorial e, em seguida, definimos como será a interação do usuário com o bot. Em um caso tão simples como o nosso, isso significa essencialmente iniciar o bot e chamar o sendImage () função quando solicitado pelo usuário.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Seu programa final deve ser parecido com este:

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Seu Próprio Telegram Bot

Parabéns! Você construiu seu próprio bot de alívio de estresse que envia imagens de código aberto dos gatos mais fofos da Internet quando solicitado. Tente executar seu programa e digite /Miau no bate-papo do seu bot para ativá-lo.

Embora possa ser um bot simples com funcionalidade limitada, ele mostra o quão poderoso é o ecossistema de desenvolvimento de bot do Telegram. Você pode adicionar qualquer número de sub-rotinas complexas e recursos para aprimorar a funcionalidade do seu bot --- o céu é o limite. Para saber mais sobre os incríveis bots do Telegram que os contribuidores criaram ao longo dos anos, confira nosso lista de bots úteis do Telegram .

Você também pode encontrar uma variedade de programas licenciados de código aberto para bots do Telegram em plataformas como o GitHub. A maioria das licenças de código aberto permite que você use, estude, baixe ou modifique o código-fonte de um programa.

Hospede seu bot de telegrama online

Agora que você tem seu bot instalado e funcionando, tente fechar main.py em seu PC e usar o bot em seu aplicativo de mensagem Telegram. Ainda responde ao /Miau comando? Não, não importa.

Como um iniciante, você pode estar confuso sobre por que main.py em seu PC precisa estar instalado e funcionando quando você já criou um bot rodando na Internet. A razão para isso é que o programa usa seu PC como um servidor local para enviar solicitações HTTP para as APIs usadas neste programa.

Como tal, ter que executar o programa toda vez que quiser usar o aplicativo não é viável nem conveniente. Para resolver esse problema, precisamos remover a dependência do bot do seu dispositivo

Uma maneira de fazer isso é usar uma placa de circuito impresso (PCB) de baixo custo, como Raspberry Pi, para configurar seu próprio servidor web e usá-lo para executar seu programa. Ele tem os mesmos benefícios de executar o programa em seu PC sem os custos de mantê-lo ligado o dia todo e a noite, uma vez que os PCBs tendem a ter uma pegada de energia significativamente menor.

Como alternativa, você também pode implantar seu programa na nuvem. Vá para uma plataforma de hospedagem de aplicativo da web, como Heroku, AWS, Google Cloud ou Microsoft Azure e escolha uma assinatura que melhor atenda às suas necessidades. Recomendamos escolher uma avaliação gratuita ou assinatura e atualizá-la conforme você aumenta a escala ou o escopo de seu programa.

Compartilhado Compartilhado Tweet O email Como hospedar seu site Python gratuitamente no Heroku

Precisa hospedar um pequeno site gratuitamente? Heroku pode ser exatamente o que você está procurando.

Leia a seguir
Tópicos relacionados
  • Programação
  • Pitão
  • Telegrama
  • Chatbot
  • Bots de mídia social
Sobre o autor Yash Chellani(10 artigos publicados)

Yash é um aspirante a estudante de ciência da computação que adora construir coisas e escrever sobre todas as coisas relacionadas à tecnologia. Em seu tempo livre, ele gosta de jogar Squash, ler uma cópia do último Murakami e caçar dragões em Skyrim.

Mais de Yash Chellani

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever