一个用于Telegram的非常简单的聊天机器人,最小



有100,500种方法和工具可创建用于电报的简单无服务器聊天机器人。 无论如何,至少通过界面中的点击次数,我们的工作将更加轻松。 该机器人本身将使用Python编写,并将在无服务器的Swifty引擎上执行。

与我们的指南一样,您将不需要任何有关python或其他编程语言的特殊知识。 您所需要的只是能够在命令行上运行某些内容的能力。 如果您在俄罗斯,则您的计算机上还会有一个VPN,因为您需要访问电报服务器。

一切都是标准的-注册机器人


要创建一个新的机器人,您需要让另一个机器人来做。 打开电报并在其中找到@BotFather机器人或打开链接 。 接下来,键入/ newbot并按照BotPapa的说明进行操作。 为使配置最少,您只需要为机器人赋予显示名称和用户名。 创建漫游器后,将为您提供访问令牌和URL。 将它们保存在某个地方。

机器人


首先,您需要向我们的无服务器平台Swifty注册。 你可以在这里做。 然后转到控制面板并执行以下操作:

  1. 单击功能->新功能。 单击“从存储库(模板)”选项卡,然后选择github.com/swiftycloud/swifty.demo存储库(如果默认情况下未选中)。 这是我们自己的存储库,我们在其中存储功能模板。
  2. 选择简单电报聊天机器人(python)模板,然后单击下一步。
  3. 输入您的机器人名称,例如swifty_bot(在下文中,我将使用此名称来指定它),然后单击“创建”。

为了使电报可以调用bot函数,您需要创建一个指向它的API链接。 转到“触发器”选项卡,单击“添加触发器-> REST API(URL)”。 保存结果链接。

然后,您需要授予bot函数访问从电报中收到的访问令牌的权限。 Swifty具有一个特殊的实体-帐户,该帐户可让您安全地存储任何数据,例如登录密码捆绑包或令牌。

  1. 选择帐户->创建帐户。 使用电报API类型,名称SWIFTYBOT(大写)和您从电报中收到的令牌。
  2. 选择功能-> swifty_bot->访问->添加。 选择帐户和一个SWIFTYBOT帐户。 您的功能现在可以安全访问访问令牌。

更新资料 注意! 该帐户的名称SWIFTYBOT写入此处的功能代码中:

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

如果要使用其他帐户名,则需要在功能代码中进行更改。 例如,如果您的帐户名是MYOWNBOT,那么您的代码将如下所示:

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

环境变量ACC_TELEGRAMMYOWNBOT_TOKEN的名称如何形成,函数通过该变量来接收account属性,就像Swifty中的任何其他资源一样? 在这里:

  • ACC-您要访问帐户类型资源的标识符;
  • TELEGRAM-帐户类型;
  • MYOWNBOT-帐户名;
  • 代币-账户财产;

结果函数的代码:

 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 

这是最简单的机器人,可以响应命令/启动,/帮助和/关于。 您还可以添加任何团队并根据需要扩展其功能。

我们将功能连接到机器人


现在,您需要告诉电报您的机器人在哪个链接上。 您需要打开命令行并在其中执行以下命令。 同时,YOUR_API_URL需要替换为您先前复制的API链接,而YOUR_ACCESS_TOKEN必须替换为令牌。

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


如果一切顺利,那么您将看到以下内容:

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

如果您在俄罗斯,那么只有启用了VPN,一切都会顺利进行。

可以检查


在电报中找到一个使用您的名字的机器人,然后尝试执行几个命令,例如/ start或/ about。 如果一切正常,那么恭喜。 如果没有, 请随时在这里或我们的闲暇频道发表评论。

如果您在名为swifty_test_bot的僵尸电报中找到了这种现成的僵尸,则可以看到它是如何工作的。 谢谢啦

就像他们在swifty.cloud中所说的那样 ,使您的想法成为应用程序。

Source: https://habr.com/ru/post/zh-CN432914/


All Articles