Como construir um bot básico do telegram com Python 3

Avatar de Redação
27/12/2020 às 19:47 | Atualizado há 3 anos
telegram

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.

Embora alguns possam 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 bot do Telegram simples que exibe imagens fofas 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. Bot API, um dos recursos mais populares do Telegram entre os desenvolvedores, permite que você use suas mensagens como uma interface.

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 ‘@botfather’ no Telegram.

Uma vez no chat, crie seu bot digitando o / newbot comando. Continue a definir o nome e o 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 comandos a seguir 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, junto 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 o 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 chat de um usuário. Para isso, precisamos de um URL de imagem, bem como o ID exclusivo 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.

Finalmente, vamos criar uma função que controle 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 obtido 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 semelhante a 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 e recursos complexos para melhorar a funcionalidade do seu bot — o céu é o limite. Para saber mais sobre os fantásticos bots do Telegram que os contribuidores criaram ao longo dos anos, verifique nossa 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-fonte aberto permite que você use, estude, baixe ou modifique o código-fonte de um programa.

Hospede Seu Bot de Telegram 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.

Portanto, 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 da 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, já que os PCBs tendem a consumir energia significativamente menos.

Alternativamente, 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 à medida que aumenta a escala ou o escopo de seu programa.


.

Se você gostou do artigo, nos acompanhe no Google Notícias, Facebook, Twitter e Telegram para ter acesso imediato a tudo.
Avatar de Redação
Os artigos assinados por nossa Redação, são artigos colaborativos entre redatores, colaboradores e/por nossa inteligência artificial (IA).
SUGESTÕES PARA VOCÊ