JavaRush /Java Blog /Random-TW /Telegram 能力機器人:可以進行對話的機器人
Chundrik
等級 35
Санкт-Петербург

Telegram 能力機器人:可以進行對話的機器人

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