机器人不仅有趣,而且有用。在研究它们的过程中,您将能够获得一个简单但有效的项目,用于自动化任何功能,并在此过程中熟悉 lambda、Git 和 Heroku。当我制作机器人时,我没有找到有关如何制作比简单的回声机器人更复杂的东西的说明。我想要一些更合理的东西:例如,一个可以进行真正对话的渠道,对话的发展会根据所选择的答案而改变。我会讲一下我的项目,这个项目花了我两周的时间,我会特别关注在Heroku上的部署,因为我在最后阶段遇到了很大的困难。
登记
首先,您需要注册机器人,接收名称和令牌,我们稍后将需要这些。幸运的是,这并不困难:只需打开 Telegram,找到 @BotFather 并输入 /start 即可。作为响应,您将收到一个命令列表 - 我们需要 /newbot。我们想出一个名称,然后是一个用户名,该用户名应以 -bot 结尾,例如 Consequences1Bot。用户名必须是原创的,所以你必须在这里发挥你的想象力。作为响应,BotFather 将发送一个令牌,最好立即保存。开始
首先,我们需要一个 Maven 项目、Java 8 和 Intelliji Idea Ultimate。插入pom.xml
:不要忘记单击“加载 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_USERNAME
和int CREATOR_ID
。为了提高安全性,需要创建者 ID - 您可以稍后找到它。
发射
创建一个类Application
,其中包含一个带有main()
初始化机器人所需代码的方法。
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部分
GO TO FULL VERSION