如果你是一个电报用户,你一定会在某个时候与聊天机器人进行“对话”。Telegram的机器人有着惊人的可定制性,它提供了各种各样的优势——无论是自动完成任务,还是在聊天室里玩游戏。
虽然有些人可能会发现开发一个机器人是一项艰巨的任务,但事实并非如此。有了正确的计划,你就可以在不到一个小时内启动并运行一个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应用托管平台,选择最适合您需求的订阅。我们建议您选择一个****版或订阅,并在您扩大计划的规模或范围时进行升级。
...于各种应用程序。Python有两个主要版本,分别是python2和python3。本文将讨论这两个版本之间的差异。Python2和3之间的关键区别在于,Python2在未来将获得最低限度的支持,而Python3将在未来继续开发更多。 目录 1. 概述和主要区别 2. ...
... 我们将使用Python3.4来控制Arduino,因为您将要安装的模块将此指定为最新的兼容版本。在此之前的任何版本都应该可以正常工作,并且已报告更高版本可以工作。您可以从Python软件基...
... sudo apt-get updatepython --versionpython3 --version ...
...恶意CSS和JS文件的危险。你也可以把你的档案列入黑名单机器人.txt文件保持私有。 ...
电报机器人是有用的工具,它可以做任何事情,从帮助你提高生产力到让你及时了解天气预报。 ...
... 当Python3.0在2008年第一次出现时,这些主要的变化被引入,这导致了一些新的特性和改进,但是该语言与Python2.x不兼容。这意味着开发人员需要重构他们的代码以利用Python3.0...
...在计算机上安装Python。在本教程中,我们将使用最新版本python3。 ...
如今,机器学习无处不在,从垃圾邮件过滤和面部识别到语音助手和无人驾驶汽车。但你不需要硕士学位就可以学会如何使用这项令人兴奋的技术,多亏了微软一款名为Lobe的新应用。 ...