Bot bukan sahaja menarik, tetapi juga berguna. Semasa mengerjakannya, anda akan mendapat projek yang ringkas tetapi berfungsi untuk mengautomasikan sebarang fungsi dan, sepanjang perjalanan, berkenalan dengan lambdas, Git dan Heroku. Apabila saya membuat bot, saya tidak menemui arahan tentang cara membuat apa-apa walaupun lebih kompleks sedikit daripada bot gema yang ringkas. Saya mahukan sesuatu yang lebih munasabah: sebagai contoh, saluran yang boleh menjalankan dialog sebenar, perkembangannya akan berubah bergantung pada jawapan yang dipilih. Saya akan bercakap tentang projek saya, yang mengambil masa dua minggu, dan saya akan memberi perhatian khusus kepada penempatan pada Heroku, kerana saya menghadapi kesukaran besar pada peringkat akhir.
Pendaftaran
Untuk bermula, anda perlu mendaftarkan bot, menerima nama dan token, yang kami perlukan kemudian. Nasib baik, ini tidak sukar: hanya buka Telegram, cari @BotFather dan masukkan /mulakan. Sebagai tindak balas, anda akan menerima senarai arahan - kami perlukan /newbot. Kami menghasilkan nama, dan kemudian nama pengguna, yang sepatutnya berakhir dengan -bot, sebagai contoh, Consequences1Bot. Nama pengguna mestilah asli, jadi anda perlu menggunakan imaginasi anda di sini. Sebagai tindak balas, BotFather akan menghantar token, yang paling baik disimpan dengan segera.Mulakan
Untuk bermula, kami memerlukan projek Maven, Java 8 dan Intelliji Idea Ultimate. Sisipkanpom.xml
: Jangan lupa klik butang Muatkan perubahan Maven, yang akan muncul di penjuru kanan sebelah atas. Juga pastikan anda menggunakan Java 8 atau lebih tinggi, ini boleh didapati dalam Fail --> Tetapan projek --> Projek. Dalam folder src.main.java
, buat subfolder dengan nama bot anda, bagi saya ia adalah pakej example.TelegramBot
. Mula-mula kita buat kelas TelegramBot
yang mewarisi AbilityBot
. Jika Idea menggariskan idea itu dengan warna merah (dan sebaliknya), klik Import kelas. AbilityBot mempunyai satu kaedah yang perlu dilaksanakan - creatorId()
.
@Override
public int creatorId() {
return Constants.CREATOR_ID;
}
Kita juga perlu mencipta dua pembina: satu tanpa hujah, dan menggunakan yang kedua kita panggil pembina superclass:
public TelegramBot() {
this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
}
private TelegramBot(String botToken, String botUsername) {
super(botToken, botUsername);
}
Constans
secara semula jadi menjadi merah - antara muka ini perlu dibuat. Ia akan menyimpan rentetan dan nombor ID. Sudah tentu, anda tidak perlu bersusah payah dan meninggalkan segala-galanya dalam dokumen utama, tetapi ia akan menjadi lebih jelas dengan cara ini. Jadi, mari buat antara muka Constans
. Pembolehubah pertama ialah String BOT_TOKEN
(token yang BotFather hantar), String BOT_USERNAME
dan int CREATOR_ID
. ID pencipta diperlukan untuk keselamatan tambahan - anda boleh menemuinya sedikit kemudian.
Pelancaran
Buat kelasApplication
yang akan mengandungi kaedah main()
dengan kod yang diperlukan untuk memulakan 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();
}
}
}
Kini anda boleh melancarkan bot dari kaedah utama, tetapi ia tidak akan melakukan sebarang tindakan. Hanya diam akan menjadi jawapan anda. Dalam bahagian seterusnya saya akan menerangkan bagaimana untuk mengubah ini. BAHAGIAN 2
GO TO FULL VERSION