JavaRush /Java 博客 /Random-ZH /Telegram 能力机器人:可以进行对话的机器人
Chundrik
第 35 级
Санкт-Петербург

Telegram 能力机器人:可以进行对话的机器人

已在 Random-ZH 群组中发布
机器人不仅有趣,而且有用。在研究它们的过程中,您将能够获得一个简单但有效的项目,用于自动化任何功能,并在此过程中熟悉 lambda、Git 和 Heroku。当我制作机器人时,我没有找到有关如何制作比简单的回声机器人更复杂的东西的说明。我想要一些更合理的东西:例如,一个可以进行真正对话的渠道,对话的发展会根据所选择的答案而改变。我会讲一下我的项目,这个项目花了我两周的时间,我会特别关注在Heroku上的部署,因为我在最后阶段遇到了很大的困难。 Telegram 能力机器人:可以进行对话的机器人 - 1

登记

首先,您需要注册机器人,接收名称和令牌,我们稍后将需要这些。幸运的是,这并不困难:只需打开 Telegram,找到 @BotFather 并输入 /start 即可。作为响应,您将收到一个命令列表 - 我们需要 /newbot。我们想出一个名称,然后是一个用户名,该用户名应以 -bot 结尾,例如 Consequences1Bot。用户名必须是原创的,所以你必须在这里发挥你的想象力。作为响应,BotFather 将发送一个令牌,最好立即保存。

开始

Telegram 能力机器人:可以进行对话的机器人 - 2首先,我们需要一个 Maven 项目、Java 8 和 Intelliji Idea Ultimate。插入pom.xmlTelegram 能力机器人:可以进行对话的机器人 - 3不要忘记单击“加载 Maven 更改”按钮,该按钮将出现在右上角。另请确保您使用的是 Java 8 或更高版本,这可以在文件 --> 项目设置 --> 项目中找到。在文件夹中src.main.java,使用您的机器人名称创建一个子文件夹,对我来说这是一个包example.TelegramBot。首先我们创建一个TelegramBot继承的类AbilityBot。如果 Idea 用红色下划线(确实如此),请单击“导入类”。SkillBot 有一种需要实现的方法 - creatorId().
@Override
    public int creatorId() {
        return Constants.CREATOR_ID;
    }
我们还需要创建两个构造函数:一个没有参数,第二个构造函数称为超类构造函数:
public TelegramBot() {
        this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
    }
    private TelegramBot(String botToken, String botUsername) {
        super(botToken, botUsername);
    }
Constans自然会变成红色 - 必须创建此界面。它将存储字符串和 ID 号。当然,你不必费心将所有内容都留在主文档中,但这样会更清晰。那么,让我们创建一个接口Constans。第一个变量将是String BOT_TOKEN(BotFather 发送的令牌)String BOT_USERNAMEint CREATOR_ID。为了提高安全性,需要创建者 ID - 您可以稍后找到它。

发射

创建一个类Application,其中包含一个带有main()初始化机器人所需代码的方法。Telegram 能力机器人:可以进行对话的机器人 - 4
public class Application {

    public static void main(String[] args) {
        // Initializes dependencies necessary for the base bot
        ApiContextInitializer.init();

        // Create the TelegramBotsApi object to register your bots
        TelegramBotsApi botsApi = new TelegramBotsApi();

        try {
            // Register your newly created AbilityBot
            FitnessBot bot = new FitnessBot();
            botsApi.registerBot(bot);

        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }
}
现在您可以从 main 方法启动机器人,但它不会执行任何操作。只有沉默才是你的答案。在下一部分中我将描述如何改变这一点。 第2部分
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION