如何用python3构建基本电报机器人

使用botapi和python3在Telegram中构建bot的初学者指南...

如果你是一个电报用户,你一定会在某个时候与聊天机器人进行“对话”。Telegram的机器人有着惊人的可定制性,它提供了各种各样的优势——无论是自动完成任务,还是在聊天室里玩游戏。

telegram bots useful

虽然有些人可能会发现开发一个机器人是一项艰巨的任务,但事实并非如此。有了正确的计划,你就可以在不到一个小时内启动并运行一个Telegram机器人!下面是如何创建一个简单的电报机器人,输出可爱的图片时,提示互联网猫。

入门

在本教程中,我们将使用python3、Python电报bot和请求库以及catapi。

Telegram中的每个bot都有一个唯一的令牌,可以帮助它与bot API通信,以便使用应用程序的消息传递接口。botapi是Telegram在开发人员中最流行的特性之一,它允许您将其消息用作接口。

要获得令牌,请与@BotFather开始对话,顾名思义,它是一个官方的bot,允许您创建和自定义自己的bot。您可以使用给定的链接访问bot,或者在Telegram上搜索'@botfather'。

在聊天室中,输入/newbot命令创建bot。继续设置您的机器人的名称和用户名(我们决定将我们的机器人命名为@pawsomebot)。在此之后,您将获得一个唯一的令牌到您的机器人。

现在我们已经具备了所有的先决条件,是时候进入激动人心的部分了!

安装库

如果使用的是Windows,请打开命令提示符并键入以下命令:

pip install python-telegram-botpip install requests

如果您使用的是macOS或Linux,请在终端上使用以下命令。此外,在Linux中,请确保以具有sudo权限的用户身份登录。

pip3 install python-telegram-botpip3 install requests

编写程序

在您的计算机上创建一个新文件夹并在您喜爱的编辑器中打开它。创建一个新文件并命名它主.py. 此文件将包含bot的源代码。

现在,让我们导入前面安装的库及其一些内置函数。

from telegram.ext import Updater, CommandHandlerimport requestsimport re

程序从这里开始的流程是访问catapi,获取随机图像的URL,并将该图像发送到用户的聊天室。

让我们从一个获取图像URL的函数开始,这个函数可以使用requests模块完成。在这个函数中,我们加载catapi提供的一个随机文件的JSON数据,并提取其URL供以后使用。要查看JSON对象的格式,请转到https://api.thecatapi.com/v1/images/search在浏览器上。你会注意到这样的情况:

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

请注意,JSON对象是一个包含字典的数组。此词典包含键为“URL”的URL。要提取URL,我们需要引用数组的第一个元素,然后引用相关的键。

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

接下来,我们需要将此图像发送到用户的聊天室。为此,我们需要一个图像URL以及用户聊天的唯一ID。让我们创建一个包装器函数来实现这一点。首先,我们调用getUrl()。函数获取随机图像的URL——每当程序遍历函数时,此URL都会更改。

然后获取收件人用户的聊天ID,该ID定义bot的消息目标位置,并通过bot API的内置send_photo()函数解析URL。

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

要了解更多关于botapi的各种内置函数以及它们是如何工作的,请在本教程之后查看Telegram的官方文档。

最后,让我们创建一个函数来控制bot的整体工作。这个函数(通常称为main())是我们使用在教程开始时获得的令牌向Bot API发送HTTP请求,然后定义Bot的用户交互。在像我们这样简单的情况下,这实际上意味着启动bot并在用户提示时调用sendImage()函数。

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()

你的最终课程应该是这样的:

from telegram.ext import Updater, CommandHandlerimport requestsimport redef 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 urldef 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()

你自己的电报机器人

祝贺 你!你已经建立了你自己的减压机器人,在提示下发送最可爱的网猫的开源图片。试着运行你的程序,在你的机器人聊天中键入/meow来激活它。

虽然这可能是一个功能有限的简单机器人,但它显示了Telegram的机器人开发生态系统是多么强大。您可以添加任意数量的复杂子例程和功能,以增强您的机器人的功能---天空的限制。要了解更多关于这些年来贡献者**的很棒的电报机器人,请查看我们有用的电报机器人列表。

您还可以在GitHub等平台上找到各种开放源码许可程序,用于电报机器人。大多数开源许可证允许您使用、研究、下载或修改程序的源代码。

在线托管你的电报机器人

现在你已经启动并运行了你的机器人,试着关闭它主.py在你的电脑上,使用你的电报信使应用程序的机器人。它仍然响应/meow命令吗?不,没有。

作为一个初学者,你可能不知道为什么主.py当您已经创建了一个运行在internet上的bot时,您的PC需要启动并运行。原因是程序将您的PC用作本地服务器,向程序中使用的API发送HTTP请求。

因此,每次想使用应用程序时都必须运行程序既不可行也不方便。为了解决这个问题,我们需要删除bot对您的设备的依赖关系

一种方法是使用低成本的印刷电路板(PCB),比如Raspberry-Pi,来建立自己的web服务器并用它来运行程序。它与在你的电脑上运行程序有着相同的好处,而无需花费整天整夜开机的费用,因为PCB的能耗往往要低得多。

或者,您也可以将程序部署到云上。前往Heroku、AWS、Google Cloud或Microsoft Azure等web应用托管平台,选择最适合您需求的订阅。我们建议您选择一个****版或订阅,并在您扩大计划的规模或范围时进行升级。

  • 发表于 2021-03-28 15:23
  • 阅读 ( 389 )
  • 分类:编程

你可能感兴趣的文章

蟒蛇2(python 2)和三(3)的区别

...于各种应用程序。Python有两个主要版本,分别是python2和python3。本文将讨论这两个版本之间的差异。Python2和3之间的关键区别在于,Python2在未来将获得最低限度的支持,而Python3将在未来继续开发更多。 目录 1. 概述和主要区别 2. ...

  • 发布于 2020-10-20 01:55
  • 阅读 ( 345 )

如何用python编程和控制arduino

... 我们将使用Python3.4来控制Arduino,因为您将要安装的模块将此指定为最新的兼容版本。在此之前的任何版本都应该可以正常工作,并且已报告更高版本可以工作。您可以从Python软件基...

  • 发布于 2021-03-11 16:20
  • 阅读 ( 881 )

开始使用tensorflow和raspberry pi进行图像识别

... sudo apt-get updatepython --versionpython3 --version ...

  • 发布于 2021-03-18 14:49
  • 阅读 ( 215 )

如何创建自己的私有自托管ReadItLater应用程序

...恶意CSS和JS文件的危险。你也可以把你的档案列入黑名单机器人.txt文件保持私有。 ...

  • 发布于 2021-03-19 09:29
  • 阅读 ( 285 )

这些机器学习课程将为您准备一条职业道路

... 2完成python训练营:在python3中从零变成英雄 ...

  • 发布于 2021-03-25 15:43
  • 阅读 ( 248 )

20个有用的电报机器人让你摆脱whatsapp

电报机器人是有用的工具,它可以做任何事情,从帮助你提高生产力到让你及时了解天气预报。 ...

  • 发布于 2021-03-25 15:54
  • 阅读 ( 903 )

关于python编程最常见的问题

... 当Python3.0在2008年第一次出现时,这些主要的变化被引入,这导致了一些新的特性和改进,但是该语言与Python2.x不兼容。这意味着开发人员需要重构他们的代码以利用Python3.0...

  • 发布于 2021-03-25 18:32
  • 阅读 ( 436 )

如何在ubuntu中安装python

...、web抓取和渗透测试。您甚至可以使用Python构建一个电报机器人。 ...

  • 发布于 2021-03-27 00:46
  • 阅读 ( 252 )

如何使用“helloworld”脚本开始使用python

...在计算机上安装Python。在本教程中,我们将使用最新版本python3。 ...

  • 发布于 2021-03-28 01:18
  • 阅读 ( 304 )

如何用microsoftlobe建立机器学习模型

如今,机器学习无处不在,从垃圾邮件过滤和面部识别到语音助手和无人驾驶汽车。但你不需要硕士学位就可以学会如何使用这项令人兴奋的技术,多亏了微软一款名为Lobe的新应用。 ...

  • 发布于 2021-03-29 16:22
  • 阅读 ( 250 )
xgdhwvcdyve
xgdhwvcdyve

0 篇文章

相关推荐