使用 Python 构建 Telegram 机器人

2025年03月17日 | 阅读 9 分钟

聊天机器人通常被誉为用户与技术和企业互动方式的一场革命。与传统应用程序相比,它们拥有更简单的界面,因为用户只需要聊天即可。聊天机器人的目的是理解并执行用户要求的任务,至少在理论上是这样。

许多行业正在将其客户服务转向聊天机器人系统,因为与真人相比,成本大大降低,而且聊天机器人坚固耐用且随时可用。聊天机器人可以在不增加大量额外成本的情况下提供一定程度的用户支持。

如今,聊天机器人已用于多种场景,从显示时间和天气数据的琐碎活动,到更复杂的操作,如基础医疗诊断和客户沟通/支持。我们可以设计一个聊天机器人,在客户询问有关产品的特定问题时为其提供支持。我们可以构建一个个人助理聊天机器人,它可以处理基本活动并充当提醒,以提醒不同的日常活动,例如参加会议的时间或锻炼的时间。

在部署聊天机器人方面,我们有多种选择,其中最常见的一种用途是社交媒体平台,因为大多数人都在广泛使用它们。即时消息应用程序也同样如此,尽管有一些注意事项。

Telegram 是当今更著名的即时通讯 (IM) 平台之一,因为它允许我们将消息存储在云端,而不仅仅是设备上,并且它拥有良好的跨平台支持,因为我们可以在 Android、iOS、Windows 以及几乎任何支持网页版的平台上使用 Telegram。在 Telegram 上构建聊天机器人非常简单,并且所需的步骤需要一点时间来完成。我们可以将聊天机器人集成到 Telegram 群组和频道中,它也可以独立运行。

在接下来的教程中,我们将了解如何使用 Python 编程语言创建 Telegram 机器人。但在开始之前,让我们先了解该项目的基本要求。

要求

  1. Telegram 账号:如果我们没有安装 Telegram 应用程序,可以从 Google Play 商店或 Apple Store 下载。下载后,我们需要像 WhatsApp 一样使用手机号码创建一个账号。
  2. python-telegram-bot 模块:对于这个项目,我们需要一个名为 python-telegram-bot 的模块。这个库为 Telegram Bot API 提供了纯 Python 接口。它与 Python 版本 3.6.8+ 兼容。除了纯 API 实现外,该库还提供了几个高级类,使机器人的开发变得简单快捷。这些类存储在“telegram.ext”子模块中。有关更多信息,我们可以查看其官方 GitHub 仓库。

如何安装 python-telegram-bot 模块?

要安装 Python 模块,我们需要 'pip',这是一个用于管理从受信任的公共存储库安装模块所需的包的框架。一旦我们有了 'pip',我们就可以使用 Windows 命令提示符 (CMD) 或终端中的以下命令来安装 python-telegram-bot 模块:

语法

验证安装

模块安装完成后,我们可以通过创建一个空的 Python 程序文件并写入如下 import 语句来验证它:

文件:verify.py

现在,保存上述文件并在终端中使用以下命令执行它:

语法

如果上述 Python 程序文件未返回任何错误,则模块已正确安装。但是,如果引发异常,请尝试重新安装模块,并且还建议参考模块的官方文档。

创建第一个机器人的步骤

我们将按照以下步骤创建我们的第一个机器人:

第 1 步: 在 Telegram 上创建账号后,我们将转到搜索栏并搜索“Botfather”。

Building a Telegram bot using Python
Building a Telegram bot using Python

第 2 步: 现在,我们将点击“BotFather”(第一个结果)并输入命令 /newbot

Building a Telegram bot using Python

第 3 步: 然后我们将为机器人指定一个唯一的名称。一旦我们命名,BotFather 将会询问其用户名。

Building a Telegram bot using Python

然后还要给一个唯一的名称,但请记住,机器人的用户名必须以 bot 结尾。例如,telebot、mybot、welcomebot 等。

第 4 步: 提供唯一名称并被接受后,我们将收到类似以下的消息:

Building a Telegram bot using Python

在上图中,每个人的 token 都会不同;我们将把这个 token 用在 Python 代码中,以更改机器人并使其符合我们的需求,并在其中添加不同的命令。

理解 Python 代码中的分步实现

在下一节中,我们将了解在 Python 编程语言中实现 Telegram 机器人的分步过程。这些步骤包括:

第 1 步: 导入所需的库

第 2 步: 定义操作函数

第 3 步: 添加 Handler 来处理消息和命令

第 4 步: 运行机器人

导入所需的库

我们将从导入创建 Telegram 机器人所需的库和函数开始。这些函数的简要用法如下:

  1. Updater - 此函数将包含我们从 BotFather 收到的 API 密钥,用于通过 Python 代码指定我们要为其添加功能的机器人。
  2. Update - 此函数每次机器人收到更新(即消息或命令)时都会被调用,并向用户发送消息。
  3. CallbackContext - 我们不会直接在代码中使用此函数的功能;但是,在添加 Dispatcher 时需要它(它将内部工作)。
  4. CommandHandler - 此 Handler 类用于处理用户发送给机器人的任何命令,命令必须以“/”开头。例如,“/start”、“/help”等等。
  5. MessageHandler - 此 Handler 类用于处理用户发送给机器人的任何普通消息。
  6. Filters - 此函数允许我们从发送的消息中过滤普通文本、命令、图片等。

让我们看下面的代码片段来说明这一点:

文件:teleBot.py

说明

我们在上面的代码片段中导入了所需的库和函数。

定义操作函数

  1. Start 函数:此函数将显示第一次对话;我们可以给它起其他名字,但当用户在最开始按下“start”时,其中的消息将被发送给用户。
    一般来说,我们应该在开始消息中添加类似“您好!欢迎来到机器人。”之类的内容。
  2. Help 函数:通常,在此函数中,我们应该添加用户可能需要的任何帮助,即机器人能理解的所有命令、与机器人相关的信息等等。

现在,让我们看以下代码片段,它演示了这一点。

文件:teleBot.py

说明

在上面的代码片段中,我们使用了 Updater() 函数,并提供了从 BotFather 收到的 API 令牌。然后我们定义了两个函数:the_startthe_help,包括要显示给用户的信息。

现在我们将为机器人添加更多功能。

让我们看下面的代码片段来说明这一点:

文件:teleBot.py

说明

在上面的代码片段中,我们添加了不同的函数。这些函数包括打开 Gmail 的函数、打开 YouTube 的函数、打开 LinkedIn 个人资料的函数以及打开 Javatpoint.com 官方网站的函数。这些不是强制性的函数,您可以根据自己的偏好添加任何类型的函数及其 reply_text;这些仅用于说明。在这里,我们还定义了一个名为 unknownText 的函数,当它收到未知消息时,它会发送其中的消息。我们还添加了一个名为 unknownCommand 的函数,它允许我们过滤掉用户发送的所有未知命令并回复其中的消息。

添加 Handler 来处理消息和命令

现在我们将使用 add_handler() 函数来处理机器人的不同命令。以下代码片段演示了这一点:

文件:teleBot.py

说明

我们在上面的代码片段中使用了 add_handler() 函数。在该函数内,我们使用了 CommandHandler() 函数,该函数获取用户的命令,并作为响应,使用函数中包含的消息生成回复。

运行机器人

我们将使用 start_polling() 函数来运行机器人。让我们考虑以下代码片段:

文件:teleBot.py

说明

我们在上面的代码片段中使用了 start_polling() 函数。每当我们开始轮询时,机器人就会处于活动状态,它会查找用户发送的任何新消息,如果匹配到那里指定的命令,它就会相应地回复。

现在,在我们查看项目输出之前,下一节将提供完整的代码。

完整的 Python 代码

创建 Telegram 机器人的完整 Python 代码如下所示:

文件:teleBot.py

输出

Building a Telegram bot using Python