Um bot de bate-papo muito simples para o Telegram, para os menores



Existem 100.500 maneiras e ferramentas para criar um simples bot de bate-papo sem servidor para telegramas. E os nossos de qualquer maneira serão mais fáceis, pelo menos pelo número de cliques na interface. O bot em si será escrito em Python e será executado no mecanismo Swifty sem servidor.

Como sempre em nossos guias, você não precisará de nenhum conhecimento especial de python ou outras linguagens de programação. Tudo o que você precisa é a capacidade de executar algo na linha de comando. Se você estiver na Rússia, também há uma VPN no seu computador, pois será necessário acessar o servidor de telegrama.

Enquanto tudo é padrão - registre um bot


Para criar um novo bot, você precisa pedir a outro bot para fazer isso. Abra o telegrama e encontre o bot @BotFather lá ou abra o link . Em seguida, digite / newbot e siga as instruções do BotPapa. Para uma configuração mínima, você só precisa fornecer ao bot um nome de exibição e um nome de usuário. Após criar o bot, você receberá o token de acesso e a URL. Salve-os em algum lugar.

Bot


Primeiro você precisa se registrar no Swifty, nossa plataforma sem servidor. Você pode fazer isso aqui . Em seguida, vá ao painel de controle e faça o seguinte:

  1. Clique em Funções -> Nova Função. Clique na guia Do repositório (Modelos) e selecione o repositório github.com/swiftycloud/swifty.demo, se não estiver selecionado por padrão. Este é o nosso próprio repositório no qual armazenamos modelos de funções.
  2. Selecione o modelo Simple Telegram Chatbot (python) e clique em Avançar.
  3. Digite o nome do seu bot, por exemplo, swifty_bot (a seguir, usarei esse nome para designá-lo) e clique em Criar.

Para que os telegramas possam chamar a função bot, você precisa criar um link de API para ela. Vá para a guia Triggers, clique em Add Trigger -> REST API (URL). Salve o link resultante.

Então, você precisa conceder às funções do bot acesso ao token de acesso que você recebeu do telegrama. O Swifty tem uma entidade especial - Conta, que permite armazenar com segurança quaisquer dados, por exemplo, pacotes ou tokens de senha de login.

  1. Selecione Contas -> Criar conta. Use o tipo de API do Telegram, o nome SWIFTYBOT (exatamente em maiúsculas) e o token que você recebeu do telegrama.
  2. Selecione Funções -> swifty_bot -> Acesso -> Adicionar. Selecione Contas e uma conta SWIFTYBOT. Sua função agora tem acesso seguro ao seu token de acesso.

Update Preste atenção! O nome SWIFTYBOT da conta está escrito no código da função aqui:

BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) 

Se você quiser usar um nome de conta diferente, precisará alterá-lo no código da função. Por exemplo, se o nome da sua conta for MYOWNBOT, seu código ficará assim:

 BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN')) 

Como é formado o nome da variável de ambiente ACC_TELEGRAMMYOWNBOT_TOKEN, através da qual a função recebe a propriedade da conta, como qualquer outro recurso no Swifty? Aqui:

  • ACC - identificador ao qual você deseja acessar um recurso do tipo Conta;
  • TELEGRAMA - tipo de conta;
  • MYOWNBOT - nome da conta;
  • TOKEN - propriedade da conta;

O código da função resultante:

 import json import os import sys import requests BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) def Main(req): try: data = json.loads(req.body.encode()) message = str(data["message"]["text"]) chat_id = data["message"]["chat"]["id"] first_name = data["message"]["chat"]["first_name"] response = "Please /start, {}".format(first_name) if "start" in message: response = "Hello {}! Type /help to get list of actions.".format(first_name) if "help" in message: response = "/about - get information about Swifty" if "about" in message: response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n" "Start creating your backend at\n" "https://swifty.cloud") data = {"text": response.encode("utf8"), "chat_id": chat_id} url = BASE_URL + "/sendMessage" requests.post(url, data) except Exception as e: print(e) return {"statusCode": 200}, None 

Este é o bot mais simples que pode responder aos comandos / start, / help e / about. Você também pode adicionar qualquer uma das suas equipes e expandir sua funcionalidade, conforme desejado.

Conectamos a função ao bot


Agora você precisa dizer ao telegrama em que link está o seu bot. Você precisa abrir a linha de comando e executar o seguinte comando nela. Ao mesmo tempo, YOUR_API_URL precisa ser substituído pelo link da API que você copiou anteriormente e YOUR_ACCESS_TOKEN por um token.

 curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL 


Se tudo correu bem, você verá algo como o seguinte:

 { "ok": true, "result": true, "description": "Webhook was set" } 

Se você estiver na Rússia, tudo correrá bem apenas se você tiver uma VPN ativada.

Pode verificar


Encontre um bot com seu nome no telegrama e tente executar alguns comandos, por exemplo, / start ou / about. Se tudo funcionar, parabéns. Caso contrário, não hesite em comentar aqui ou em nosso canal de folga .

Você pode ver como um bot tão pronto funciona se o encontrar no telegrama de nosso bot com o nome swifty_test_bot. Obrigada

Faça com que suas idéias sejam aplicadas , como dizem no swifty.cloud .

Source: https://habr.com/ru/post/pt432914/


All Articles