機器人不僅有趣,而且有用。在研究它們的過程中,您將能夠獲得一個簡單但有效的項目,用於自動化任何功能,並在此過程中熟悉 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