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.
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
Um zu beginnen, benötigen wir ein Maven-Projekt, Java 8 und Intelliji Idea Ultimate. Einfügenpom.xml
: Vergessen 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.java
einen 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);
}
Constans
wird 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_USERNAME
und int CREATOR_ID
. Die Ersteller-ID wird für zusätzliche Sicherheit benötigt – Sie finden sie etwas später.
Start
Erstellen Sie eine KlasseApplication
, die eine Methode mit dem Code enthält, main()
der zum Initialisieren des Bots erforderlich ist.
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
GO TO FULL VERSION