Les robots sont non seulement intéressants, mais aussi utiles. En travaillant dessus, vous pourrez obtenir un projet simple mais fonctionnel pour automatiser toutes les fonctions et, en cours de route, vous familiariser avec lambdas, Git et Heroku. Lorsque j'ai créé le bot, je n'ai pas trouvé d'instructions sur la façon de créer quelque chose d'un peu plus complexe qu'un simple robot d'écho. Je voulais quelque chose de plus raisonnable : par exemple, une chaîne qui puisse mener un vrai dialogue, dont le déroulement changerait en fonction de la réponse choisie. Je parlerai de mon projet, qui m'a pris deux semaines, et je porterai une attention particulière au déploiement sur Heroku, car j'ai rencontré de grosses difficultés au stade final.
Inscription
Pour commencer, vous devez enregistrer le bot, en recevant un nom et un jeton, dont nous aurons besoin plus tard. Heureusement, ce n'est pas difficile : ouvrez simplement Telegram, recherchez @BotFather et entrez /start. En réponse, vous recevrez une liste de commandes - nous avons besoin de /newbot. Nous trouvons un nom, puis un nom d'utilisateur, qui doit se terminer par -bot, par exemple Consequences1Bot. Le nom d'utilisateur doit être original, vous devrez donc faire preuve d'imagination ici. En réponse, BotFather enverra un jeton, qu'il est préférable de sauvegarder immédiatement.Commencer
Pour commencer, nous aurons besoin d'un projet Maven, Java 8 et Intelliji Idea Ultimate. Insérerpom.xml
: N'oubliez pas de cliquer sur le bouton Charger les modifications Maven, qui apparaîtra dans le coin supérieur droit. Assurez-vous également que vous utilisez Java 8 ou supérieur, cela peut être trouvé dans Fichier --> Paramètres du projet --> Projet. Dans le dossier src.main.java
, créez un sous-dossier avec le nom de votre bot, pour moi c'est un package example.TelegramBot
. Nous créons d’abord une classe TelegramBot
qui hérite de AbilityBot
. Si Idea le souligne en rouge (et c’est le cas), cliquez sur Importer la classe. AbilityBot a une méthode qui doit être implémentée - creatorId()
.
@Override
public int creatorId() {
return Constants.CREATOR_ID;
}
Nous devons également créer deux constructeurs : un sans arguments, et en utilisant le second, nous appelons le constructeur de superclasse :
public TelegramBot() {
this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
}
private TelegramBot(String botToken, String botUsername) {
super(botToken, botUsername);
}
Constans
devient naturellement rouge - cette interface doit être créée. Il stockera les chaînes et le numéro d'identification. Bien sûr, vous n’avez pas besoin de tout laisser dans le document principal, mais ce sera beaucoup plus clair de cette façon. Alors, créons une interface Constans
. Les premières variables seront String BOT_TOKEN
(le jeton envoyé par BotFather) String BOT_USERNAME
et int CREATOR_ID
. L'ID de créateur est nécessaire pour plus de sécurité - vous pourrez le retrouver un peu plus tard.
Lancement
Créez une classeApplication
qui contiendra une méthode main()
avec le code nécessaire pour initialiser le bot.
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();
}
}
}
Vous pouvez maintenant lancer le bot à partir de la méthode principale, mais il n'effectuera aucune action. Seul le silence sera votre réponse. Dans la partie suivante, je décrirai comment changer cela. PARTIE 2
GO TO FULL VERSION