portaldacalheta.pt
  • Principal
  • Ferramentas E Tutoriais
  • Noticias Do Mundo
  • Pessoas E Equipes
  • Ascensão Do Remoto
Tecnologia

Construindo Seu Primeiro Bot de Telegram: Um Guia Passo a Passo



Os chatbots são frequentemente apresentados como uma revolução na forma como os usuários interagem com a tecnologia e os negócios. Eles têm uma interface bastante simples em comparação com os aplicativos tradicionais, já que exigem apenas que os usuários conversem, e os chatbots devem entender e fazer tudo o que o usuário exigir deles, pelo menos em teoria.

Muitas indústrias estão mudando seu atendimento ao cliente para sistemas de chatbot. Isso se deve à enorme queda no custo em comparação com os humanos reais e também por causa da robustez e disponibilidade constante. Os chatbots oferecem um certo nível de suporte ao usuário sem custos adicionais substanciais.



Hoje, os chatbots são usados ​​em muitos cenários, desde tarefas servis, como exibir dados de tempo e clima, até operações mais complexas, como diagnóstico médico rudimentar e comunicação / suporte ao cliente. Você pode criar um chatbot que ajudará seus clientes quando eles fizerem certas perguntas sobre seu produto, ou você pode fazer um chatbot de assistente pessoal que pode lidar com tarefas básicas e lembrá-lo quando for a hora de ir para uma reunião ou academia.



Existem muitas opções quando se trata de onde você pode implantar seu chatbot, e um dos usos mais comuns são plataformas de mídia social, já que a maioria das pessoas as usa regularmente. O mesmo pode ser dito dos aplicativos de mensagens instantâneas, embora com algumas ressalvas.



Telegrama é uma das plataformas de mensagens instantâneas mais populares hoje, pois permite que você armazene mensagens na nuvem em vez de apenas seu dispositivo e possui um bom suporte multi-plataforma, já que você pode ter o Telegram no Android, iOS, Windows e praticamente qualquer outra plataforma que pode suportar a versão web. Construir um chatbot no Telegram é bastante simples e requer algumas etapas que levam muito pouco tempo para serem concluídas. O chatbot pode ser integrado em grupos e canais do Telegram, e também funciona por conta própria.

Neste tutorial, criaremos um bot do Telegram que fornece uma imagem de avatar de Avatares adoráveis . Nosso exemplo envolverá a construção de um bot usando o Flask e sua implantação em um servidor Heroku gratuito.



Para completar este tutorial, você precisará Python 3 instalado em seu sistema, bem como Habilidades de programação Python . Além disso, um bom entendimento de como os aplicativos funcionam seria um bom acréscimo, mas não uma obrigação, já que veremos a maioria das coisas que apresentamos em detalhes. Você também precisa Ir instalado em seu sistema.

a estratégia de implementação mais ousada e arriscada é a abordagem _______________.

Obviamente, o tutorial também requer uma conta no Telegram, que é gratuita. Você pode se inscrever Aqui . Uma conta Heroku também é necessária e você pode obtê-la gratuitamente Aqui .



Trazendo seu bot de telegrama à vida

Para criar um chatbot no Telegram, você precisa entrar em contato com o BotFather , que é essencialmente um bot usado para criar outros bots.

O comando de que você precisa é /newbot o que leva às seguintes etapas para criar seu bot:



Tutorial do bot do Telegram - exemplo de captura de tela

Seu bot deve ter dois atributos: um nome e um nome de usuário. O nome aparecerá para o seu bot, enquanto o nome de usuário será usado para menções e compartilhamento.



Depois de escolher seu nome de bot e nome de usuário - que deve terminar com “bot” - você receberá uma mensagem contendo seu token de acesso e obviamente precisará salvar seu token de acesso e nome de usuário para mais tarde, pois precisará deles.

Codifique a lógica do chatbot

Estaremos usando o Ubuntu neste tutorial. Para usuários do Windows, a maioria dos comandos aqui funcionará sem problemas, mas se você enfrentar qualquer problema com a configuração do ambiente virtual, consulte esse link . Para usuários de Mac, este tutorial deve funcionar perfeitamente.



Primeiro, vamos criar um ambiente virtual. Isso ajuda a isolar os requisitos do seu projeto de seu ambiente Python global.

$ python -m venv botenv/

Agora teremos um botenv/ diretório que conterá todas as bibliotecas Python que usaremos. Vá em frente e ative virtualenv usando o seguinte comando:

$ source botenv/bin/activate

As bibliotecas de que precisamos para nosso bot são:

  • Frasco : Uma micro estrutura da web construída em Python.
  • Python-telegram-bot : Um wrapper do Telegram em Python.
  • solicitações de : Uma biblioteca Python http popular.

Você pode instalá-los no ambiente virtual usando o comando pip da seguinte maneira:

(telebot) $ pip install flask (telebot) $ pip install python-telegram-bot (telebot) $ pip install requests

Agora vamos navegar em nosso diretório de projetos.

. ├── app.py ├── telebot │ ├── credentials.py │ | . │ | you can build your engine here │ | . │ └── __init__.py └── botenv

No credentials.py arquivo, vamos precisar de três variáveis:

bot_token = 'here goes your access token from BotFather' bot_user_name = 'the username you entered' URL = 'the heroku app link that we will create later'

Agora vamos voltar ao nosso app.py e passar pelo código passo a passo:

# import everything from flask import Flask, request import telegram from telebot.credentials import bot_token, bot_user_name,URL global bot global TOKEN TOKEN = bot_token bot = telegram.Bot(token=TOKEN)

Agora temos o objeto bot que será usado para qualquer ação que exigirmos que o bot execute.

# start the flask app app = Flask(__name__)

Também precisamos vincular funções a rotas específicas. Em outras palavras, precisamos dizer ao Flask o que fazer quando um endereço específico for chamado. Informações mais detalhadas sobre o Flask e as rotas podem ser encontradas Aqui .

Em nosso exemplo, a função de rota responde a uma URL que é basicamente /{token}, e esta é a URL que o Telegram chamará para obter respostas para mensagens enviadas ao bot.

@app.route('/{}'.format(TOKEN), methods=['POST']) def respond(): # retrieve the message in JSON and then transform it to Telegram object update = telegram.Update.de_json(request.get_json(force=True), bot) chat_id = update.message.chat.id msg_id = update.message.message_id # Telegram understands UTF-8, so encode text for unicode compatibility text = update.message.text.encode('utf-8').decode() # for debugging purposes only print('got text message :', text) # the first time you chat with the bot AKA the welcoming message if text == '/start': # print the welcoming message bot_welcome = ''' Welcome to coolAvatar bot, the bot is using the service from http://avatars.adorable.io/ to generate cool looking avatars based on the name you enter so please enter a name and the bot will reply with an avatar for your name. ''' # send the welcoming message bot.sendMessage(chat_id=chat_id, text=bot_welcome, reply_to_message_id=msg_id) else: try: # clear the message we got from any non alphabets text = re.sub(r'W', '_', text) # create the api link for the avatar based on http://avatars.adorable.io/ url = 'https://api.adorable.io/avatars/285/{}.png'.format(text.strip()) # reply with a photo to the name the user sent, # note that you can send photos by url and telegram will fetch it for you bot.sendPhoto(chat_id=chat_id, photo=url, reply_to_message_id=msg_id) except Exception: # if things went wrong bot.sendMessage(chat_id=chat_id, text='There was a problem in the name you used, please enter different name', reply_to_message_id=msg_id) return 'ok'

A maneira intuitiva de fazer essa função funcionar é chamá-la a cada segundo, para que verifique se uma nova mensagem chegou, mas não faremos isso. Em vez disso, estaremos usando Webhook o que nos fornece uma maneira de permitir que o bot chame nosso servidor sempre que uma mensagem for chamada, para que não precisemos fazer nosso servidor sofrer em um loop de espera pela chegada de uma mensagem.

Então, vamos fazer uma função que nós mesmos precisamos chamar para ativar o Webhook do Telegram, basicamente dizendo ao Telegram para chamar um link específico quando uma nova mensagem chegar. Chamaremos essa função apenas uma vez, quando criarmos o bot pela primeira vez. Se você alterar o link do aplicativo, precisará executar esta função novamente com o novo link que possui.

A rota aqui pode ser qualquer coisa; você é aquele que vai chamá-lo:

@app.route('/setwebhook', methods=['GET', 'POST']) def set_webhook(): # we use the bot object to link the bot to our app which live # in the link provided by URL s = bot.setWebhook('{URL}{HOOK}'.format(URL=URL, HOOK=TOKEN)) # something to let us know things work if s: return 'webhook setup ok' else: return 'webhook setup failed'

Agora que tudo está definido, vamos apenas fazer uma página inicial sofisticada para sabermos que o motor está funcionando.

@app.route('/') def index(): return '.' if __name__ == '__main__': # note the threaded arg which allow # your app to have more than one thread app.run(threaded=True)

Vamos dar uma olhada na versão completa do app.py:

import re from flask import Flask, request import telegram from telebot.credentials import bot_token, bot_user_name,URL global bot global TOKEN TOKEN = bot_token bot = telegram.Bot(token=TOKEN) app = Flask(__name__) @app.route('/{}'.format(TOKEN), methods=['POST']) def respond(): # retrieve the message in JSON and then transform it to Telegram object update = telegram.Update.de_json(request.get_json(force=True), bot) chat_id = update.message.chat.id msg_id = update.message.message_id # Telegram understands UTF-8, so encode text for unicode compatibility text = update.message.text.encode('utf-8').decode() # for debugging purposes only print('got text message :', text) # the first time you chat with the bot AKA the welcoming message if text == '/start': # print the welcoming message bot_welcome = ''' Welcome to coolAvatar bot, the bot is using the service from http://avatars.adorable.io/ to generate cool looking avatars based on the name you enter so please enter a name and the bot will reply with an avatar for your name. ''' # send the welcoming message bot.sendMessage(chat_id=chat_id, text=bot_welcome, reply_to_message_id=msg_id) else: try: # clear the message we got from any non alphabets text = re.sub(r'W', '_', text) # create the api link for the avatar based on http://avatars.adorable.io/ url = 'https://api.adorable.io/avatars/285/{}.png'.format(text.strip()) # reply with a photo to the name the user sent, # note that you can send photos by url and telegram will fetch it for you bot.sendPhoto(chat_id=chat_id, photo=url, reply_to_message_id=msg_id) except Exception: # if things went wrong bot.sendMessage(chat_id=chat_id, text='There was a problem in the name you used, please enter different name', reply_to_message_id=msg_id) return 'ok' @app.route('/set_webhook', methods=['GET', 'POST']) def set_webhook(): s = bot.setWebhook('{URL}{HOOK}'.format(URL=URL, HOOK=TOKEN)) if s: return 'webhook setup ok' else: return 'webhook setup failed' @app.route('/') def index(): return '.' if __name__ == '__main__': app.run(threaded=True)

Esse é o último pedaço de código que você escreverá em nosso tutorial. Agora podemos avançar para a última etapa, o lançamento de nosso aplicativo no Heroku.

Lance nosso aplicativo no Heroku

Precisamos de algumas coisas antes de fazer nosso aplicativo.

O Heroku não pode saber quais bibliotecas seu projeto usa, então temos que informá-lo usando requirements.txt arquivo - um problema comum é que você digitou incorretamente os requisitos, então tome cuidado - para gerar o arquivo de requisitos usando pip:

pip freeze > requirements.txt

Agora você tem seu arquivo de requisitos pronto para uso.

Agora você precisa do Procfile que informa ao Heroku onde nosso aplicativo começa, então crie um Procfile arquivo e adicione o seguinte:

quais são os princípios de design
web: gunicorn app:app

Uma etapa de salto: você pode adicionar um .gitignore arquivo para o seu projeto, para que os arquivos inúteis não sejam enviados para o repositório.

Do seu Heroku painel de controle , crie um novo aplicativo. Depois de fazer isso, ele o direcionará para o Implantar página. Então, abra o Definições guia em uma nova janela e copie o domínio do aplicativo que será algo como https://appname.herokuapp.com/ e cole-o na variável URL dentro de credentials.py.

Captura de tela do painel do Heroku

Agora, volte para o Implantar guia e prossiga com as etapas:

Nota: Os usuários do Windows e do macOS podem seguir as etapas descritas Aqui .

Faça login no Heroku:

$ heroku login

Observe que esse método às vezes fica travado em waiting for login, se isso acontecer com você, tente fazer o login usando:

$ heroku login -i

Inicialize um repositório Git em nosso diretório:

$ git init $ heroku git:remote -a {heroku-project-name}

Implante o aplicativo:

$ git add . $ git commit -m 'first commit' $ git push heroku master

Neste ponto, você verá o andamento da construção em seu terminal. Se tudo correr bem, você verá algo assim:

remote: -----> Launching... remote: Released v6 remote: https://project-name.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done.

Agora vá para a página do aplicativo (o link do domínio que você copiou antes) e adicione ao final do link /setwebhook para que o endereço seja algo como https://appname.herokuapp.com/setwebhook. Se vir webhook setup ok, significa que está pronto para começar!

Agora vá falar com seu bot

Versão ao vivo do chatbot do Telegram

Uma versão ao vivo do bot

Toques finais, dicas e truques

Agora você tem seu bot Telegram instalado e funcionando, 24 horas por dia, 7 dias por semana, sem qualquer necessidade de sua intervenção. Você pode adicionar qualquer lógica que desejar ao bot, então, por exemplo, você pode tornar seu bot mais realista adicionando um status de 'digitação' e enviando um status de foto da seguinte forma:

O próximo trecho de código do respond() função:

if text == '/start': # print the welcoming message bot_welcome = ''' Welcome to coolAvatar bot, the bot is using the service from http://avatars.adorable.io/ to generate cool looking avatars based on the name you enter so please enter a name and the bot will reply with an avatar for your name. ''' # send the welcoming message bot.sendChatAction(chat_id=chat_id, action='typing') sleep(1.5) bot.sendMessage(chat_id=chat_id, text=bot_welcome, reply_to_message_id=msg_id) else: try: # clear the message we got from any non alphabets text = re.sub(r'W', '_', text) # create the api link for the avatar based on http://avatars.adorable.io/ url = 'https://api.adorable.io/avatars/285/{}.png'.format(text.strip()) # reply with a photo to the name the user sent, # note that you can send photos by url and telegram will fetch it for you bot.sendChatAction(chat_id=chat_id, action='upload_photo') sleep(2) bot.sendPhoto(chat_id=chat_id, photo=url, reply_to_message_id=msg_id) except Exception: # if things went wrong bot.sendMessage(chat_id=chat_id, text='There was a problem in the name you used, please enter different name', reply_to_message_id=msg_id)

Como você pode ver no snippet, adicionamos uma ação de digitação quando estamos prestes a enviar as informações sobre o bot, que está em formato de texto, e adicionamos uma ação de upload de foto quando estamos prestes a enviar uma foto para tornar o bot mais realista . Mais ações podem ser encontradas Aqui .

Você também pode alterar a imagem e a descrição do bot do canal BotFather para torná-lo mais amigável.

Muitos outros exemplos simples de bots de telegrama podem ser encontrados no python-telegram-bot página no GitHub.

Você pode desenvolver nosso bot e torná-lo o próximo super bot de IA - tudo o que você precisa fazer é integrar sua lógica no respond() função. Por exemplo, sua lógica pode estar em um módulo separado e pode ser chamada dentro de respond() funcionar assim:

. ├── app.py ├── telebot │ ├── credentials.py │ ├──ai.py │ | . │ | you can build your engine here │ | . │ └── __init__.py └── botenv

E dentro de ai .py:

def generate_smart_reply(text): # here we can do all our work return 'this is a smart reply from the ai!'

Importe-o agora no aplicativo .py:

import re from time import sleep from flask import Flask, request import telegram From telebot.ai import generate_smart_reply from telebot.credentials import bot_token, bot_user_name,URL

Em seguida, basta chamá-lo dentro de respond() código.

def respond(): # retrieve the message in JSON and then transform it to Telegram object update = telegram.Update.de_json(request.get_json(force=True), bot) chat_id = update.message.chat.id msg_id = update.message.message_id # Telegram understands UTF-8, so encode text for unicode compatibility text = update.message.text.encode('utf-8').decode() # for debugging purposes only print('got text message :', text) # here call your smart reply message reply = generate_smart_reply(text) bot.sendMessage(chat_id=chat_id, text=reply, reply_to_message_id=msg_id)

Agora você pode fazer seu bot funcionar da maneira que quiser - vá em frente e crie a próxima grande novidade!

Espero que você tenha se divertido construindo seu primeiro bot do Telegram.

Recursos adicionais

  • Construindo um Chatbot usando Telegram e Python
  • Configurando seu Telegram Bot WebHook de maneira fácil
  • Repositório Python-telegram-bot
  • Implantar com Git no Heroku
  • Documentação do Python Telegram Bot
Relacionado: Crie um WhatsApp Chatbot, não um aplicativo

Compreender o básico

O que é um bot de telegrama?

Um bot do Telegram é um software automatizado criado para ajudar um usuário a atender às suas necessidades com o mínimo de interação com o sistema e entregar os melhores resultados ao entender o que o usuário diz.

Os bots do Telegram são seguros?

Os bots do Telegram têm alguns problemas ao considerar o uso de criptografia de ponta a ponta, pois usam uma técnica de criptografia diferente da usada nas mensagens do usuário. Isso torna os bots vulneráveis ​​e permite que os invasores acessem as mensagens de bate-papo, então os usuários devem ter cuidado.

Qual é a utilidade do Flask?

Flask é uma micro estrutura da web escrita em Python. Nós o usamos para construir nosso servidor web com o mínimo de esforço.

Qual é o propósito do Heroku?

Heroku é uma plataforma como serviço (Paas) em nuvem com suporte para várias linguagens de programação. Neste tutorial, nós o usamos para hospedar nossa lógica e mantê-la funcionando o tempo todo.

A Riqueza das Nações: Estratégias de Investimento de Fundos Soberanos de Riqueza

Processos Financeiros

A Riqueza das Nações: Estratégias de Investimento de Fundos Soberanos de Riqueza
O impacto do Brexit no setor de serviços financeiros

O impacto do Brexit no setor de serviços financeiros

Processos Financeiros

Publicações Populares
Manter frameworks PHP MVC Slim com uma estrutura em camadas
Manter frameworks PHP MVC Slim com uma estrutura em camadas
Modelos de preços SaaS - exemplos de estratégia de preços e práticas recomendadas
Modelos de preços SaaS - exemplos de estratégia de preços e práticas recomendadas
A pessoa mais velha do mundo, a italiana Emma Morano, morre aos 117 anos
A pessoa mais velha do mundo, a italiana Emma Morano, morre aos 117 anos
Salesforce Einstein AI: um tutorial de API
Salesforce Einstein AI: um tutorial de API
UX em evolução - Design de produto experimental com um CXO
UX em evolução - Design de produto experimental com um CXO
 
Na adolescência, o estresse excessivo pode desencadear acidez
Na adolescência, o estresse excessivo pode desencadear acidez
Princípios de Design Organizacional e Otimização: Lições da Grande Recessão
Princípios de Design Organizacional e Otimização: Lições da Grande Recessão
Da política à família: como a indicação de Kamala Harris é relevante para a Índia
Da política à família: como a indicação de Kamala Harris é relevante para a Índia
Implementando um servidor Framebuffer remoto em Java
Implementando um servidor Framebuffer remoto em Java
Republicanos e democratas criticam Trump por reivindicar a vitória prematuramente
Republicanos e democratas criticam Trump por reivindicar a vitória prematuramente
Publicações Populares
  • renderização do lado do servidor vs renderização do lado do cliente
  • o que você pode fazer com o node js
  • quais dos seguintes são princípios de design
  • levantamento de capital para iniciar negócios
  • barreiras para comunicação intercultural
  • como eu uso o bootstrap
Categorias
  • Ferramentas E Tutoriais
  • Noticias Do Mundo
  • Pessoas E Equipes
  • Ascensão Do Remoto
  • © 2022 | Todos Os Direitos Reservados

    portaldacalheta.pt