Kotlin Telegram 机器人:一小时内从零开始创建

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么 Kotlin 是 Telegram 机器人的理想语言?

\n

您是否曾想过,为什么 Kotlin 如此迅速地赢得了开发者的青睐?原因在于,这种语言结合了 Python 的简洁性和 Java 的强大功能,同时避免了它们的缺点。当涉及到使用 Kotlin 创建 Telegram 机器人时,您得到的不仅仅是一个可行的解决方案,而是一个优雅、高性能且易于维护的代码。

\n

想象一下:您编写一个机器人,它每秒处理数千个请求,无故障运行,而且代码行数比 Java 少一半。听起来像梦想?实际上,这是现实。Kotlin Telegram 机器人不仅时尚,而且实用。特别是如果您已经熟悉 JVM 生态系统,或者想在 Python 之后尝试一些新东西。

\n

在本指南中,我们将逐步创建一个完整的机器人:从在 BotFather 中注册到在服务器上部署。您将学习如何处理命令、使用键盘甚至发送文件。我们开始吧!

\n\n

步骤 1:准备环境和注册机器人

\n

在编写代码之前,我们需要获取一个令牌——访问 Telegram API 的密钥。这是通过官方机器人 BotFather 完成的。整个过程不到一分钟。

\n
    \n
  • 打开 Telegram 并搜索 @BotFather。
  • \n
  • 发送命令 /newbot。
  • \n
  • 想一个名称(例如,MyKotlinBot)和一个以 bot 结尾的用户名(例如,MyKotlinBot)。
  • \n
  • 保存收到的令牌——连接时需要用到它。
  • \n
\n

现在配置项目。我建议使用 IntelliJ IDEA Community Edition(它是免费的,并且与 Kotlin 配合得很好)。使用 Kotlin DSL 创建一个新的 Gradle 项目。

\n\n

添加依赖项

\n

为了与 Telegram API 交互,我们将使用 TelegramBots 库——这是 Kotlin 和 Java 世界中的事实标准。打开 build.gradle.kts 文件并添加:

\n
dependencies {\n    implementation("org.telegram:telegrambots:6.9.7.1")\n    implementation("org.telegram:telegrambotsextensions:6.9.7.1")\n    implementation("ch.qos.logback:logback-classic:1.5.6")\n}
\n

第一个库是核心,第二个是有用的扩展(例如,用于处理命令),第三个是日志记录,以便查看错误。

\n\n

步骤 2:编写第一个 Kotlin 机器人

\n

创建一个继承自 TelegramLongPollingBot 的类 MyBot。这是最简单的方法:机器人将自行轮询 Telegram 服务器以获取新消息。

\n
import org.telegram.telegrambots.bots.TelegramLongPollingBot\nimport org.telegram.telegrambots.meta.api.objects.Update\n\nclass MyBot : TelegramLongPollingBot() {\n\n    override fun getBotUsername(): String = "MyKotlinBot" // 您的用户名\n\n    override fun getBotToken(): String = "您的令牌在此处" // 来自 BotFather 的令牌\n\n    override fun onUpdateReceived(update: Update?) {\n        // 暂时只是一个占位符\n        if (update?.hasMessage() == true && update.message.hasText()) {\n            println("收到消息:${update.message.text}")\n        }\n    }\n}
\n

现在需要启动机器人。创建一个包含入口点的文件 Main.kt:

\n
import org.telegram.telegrambots.meta.TelegramBotsApi\nimport org.telegram.telegrambots.updatesreceivers.DefaultBotSession\n\nfun main() {\n    val botsApi = TelegramBotsApi(DefaultBotSession::class.java)\n    botsApi.registerBot(MyBot())\n    println("机器人已启动!")\n}
\n

运行它——您的第一个 Kotlin Telegram 机器人已经上线!目前它只将消息输出到控制台,但这只是开始。

\n\n

步骤 3:处理命令并发送回复

\n

仅仅读取消息很无聊。让我们教机器人响应命令。为此,我们使用扩展中的 @BotCommand 注解,但首先重写类,使其继承

博客

书籍推荐