JavaRush /Java-Blog /Random-DE /Telegram Ability Bot: ein Bot, der einen Dialog führen ka...
Chundrik
Level 35
Санкт-Петербург

Telegram Ability Bot: ein Bot, der einen Dialog führen kann

Veröffentlicht in der Gruppe Random-DE
Bots sind nicht nur interessant, sondern auch nützlich. Während Sie daran arbeiten, erhalten Sie ein einfaches, aber funktionierendes Projekt zur Automatisierung beliebiger Funktionen und lernen nebenbei Lambdas, Git und Heroku kennen. Als ich den Bot erstellt habe, habe ich keine Anleitung gefunden, wie man etwas auch nur ein wenig komplexeres als einen einfachen Echo-Bot erstellen könnte. Ich wollte etwas Vernünftigeres: zum Beispiel einen Kanal, der einen echten Dialog führen könnte, dessen Entwicklung sich je nach gewählter Antwort ändern würde. Ich werde über mein Projekt sprechen, das zwei Wochen gedauert hat, und ich werde der Bereitstellung auf Heroku besondere Aufmerksamkeit widmen, da ich in der Endphase auf große Schwierigkeiten gestoßen bin. Telegram Ability Bot: ein Bot, der einen Dialog führen kann – 1

Anmeldung

Um zu beginnen, müssen Sie den Bot registrieren und erhalten einen Namen und ein Token, die wir später benötigen. Glücklicherweise ist dies nicht schwierig: Öffnen Sie einfach Telegram, suchen Sie nach @BotFather und geben Sie /start ein. Als Antwort erhalten Sie eine Liste mit Befehlen – wir benötigen /newbot. Wir überlegen uns einen Namen und dann einen Benutzernamen, der auf -bot enden sollte, zum Beispiel Consequences1Bot. Der Benutzername muss original sein, daher müssen Sie hier Ihrer Fantasie freien Lauf lassen. Als Antwort sendet BotFather ein Token, das am besten sofort gespeichert wird.

Start

Telegram Ability Bot: ein Bot, der einen Dialog führen kann – 2Um zu beginnen, benötigen wir ein Maven-Projekt, Java 8 und Intelliji Idea Ultimate. Einfügen pom.xml: Telegram Ability Bot: ein Bot, der einen Dialog führen kann – 3Vergessen Sie nicht, auf die Schaltfläche „Maven-Änderungen laden“ zu klicken, die in der oberen rechten Ecke angezeigt wird. Stellen Sie außerdem sicher, dass Sie Java 8 oder höher verwenden. Dies finden Sie unter Datei -> Projekteinstellungen -> Projekt. Erstellen Sie im Ordner src.main.javaeinen Unterordner mit dem Namen Ihres Bots, für mich ist es ein Paket example.TelegramBot. Zuerst erstellen wir eine Klasse TelegramBot, die erbt AbilityBot. Wenn Idea es rot unterstreicht (und das ist der Fall), klicken Sie auf Klasse importieren. AbilityBot verfügt über eine Methode, die implementiert werden muss – creatorId().
@Override
    public int creatorId() {
        return Constants.CREATOR_ID;
    }
Wir müssen außerdem zwei Konstruktoren erstellen: einen ohne Argumente und mit dem zweiten rufen wir den Superklassen-Konstruktor auf:
public TelegramBot() {
        this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
    }
    private TelegramBot(String botToken, String botUsername) {
        super(botToken, botUsername);
    }
Constanswird natürlich rot - diese Schnittstelle muss erstellt werden. Es speichert die Zeichenfolgen und die ID-Nummer. Natürlich müssen Sie sich nicht die Mühe machen und alles im Hauptdokument belassen, aber so wird es viel übersichtlicher. Erstellen wir also eine Schnittstelle Constans. Die ersten Variablen sind String BOT_TOKEN(das von BotFather gesendete Token) String BOT_USERNAMEund int CREATOR_ID. Die Ersteller-ID wird für zusätzliche Sicherheit benötigt – Sie finden sie etwas später.

Start

Erstellen Sie eine Klasse Application, die eine Methode mit dem Code enthält, main()der zum Initialisieren des Bots erforderlich ist.Telegram Ability Bot: ein Bot, der einen Dialog führen kann – 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();
        }
    }
}
Jetzt können Sie den Bot über die Hauptmethode starten, er führt jedoch keine Aktionen aus. Nur Stille wird deine Antwort sein. Im nächsten Teil beschreibe ich, wie man das ändert. TEIL 2
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION