บอทไม่เพียงแต่น่าสนใจ แต่ยังมีประโยชน์อีกด้วย ในขณะที่ทำงานนี้ คุณจะได้รับโปรเจ็กต์ที่เรียบง่ายแต่ใช้งานได้จริงสำหรับการทำงานอัตโนมัติของฟังก์ชันต่างๆ และทำความคุ้นเคยกับ lambdas, Git และ Heroku ตลอดทาง ตอนที่ฉันสร้างบอท ฉันไม่พบคำแนะนำเกี่ยวกับวิธีการสร้างสิ่งใดที่ซับซ้อนกว่า echo bot ธรรมดาเลยแม้แต่น้อย ฉันต้องการบางสิ่งที่สมเหตุสมผลกว่านี้: ตัวอย่างเช่น ช่องทางที่สามารถดำเนินการสนทนาจริงได้ ซึ่งการพัฒนาจะเปลี่ยนไปตามคำตอบที่เลือก ฉันจะพูดคุยเกี่ยวกับโครงการของฉัน ซึ่งใช้เวลาสองสัปดาห์ และฉันจะให้ความสนใจเป็นพิเศษกับการติดตั้ง Heroku เนื่องจากฉันพบกับความยากลำบากอย่างมากในขั้นตอนสุดท้าย
การลงทะเบียน
ในการเริ่มต้น คุณต้องลงทะเบียนบอท โดยรับชื่อและโทเค็น ซึ่งเราจะต้องใช้ในภายหลัง โชคดีที่นี่ไม่ใช่เรื่องยาก เพียงเปิด Telegram ค้นหา @BotFather แล้วป้อน /start เพื่อเป็นการตอบสนอง คุณจะได้รับรายการคำสั่ง - เราต้องการ /newbot เราตั้งชื่อแล้วตามด้วยชื่อผู้ใช้ ซึ่งควรลงท้ายด้วย -bot เช่น Consequences1Bot ชื่อผู้ใช้จะต้องเป็นต้นฉบับ ดังนั้นคุณจะต้องใช้จินตนาการของคุณที่นี่ เพื่อเป็นการตอบกลับ BotFather จะส่งโทเค็นซึ่งจะดีที่สุดในการบันทึกทันทีเริ่ม
ในการเริ่มต้น เราจะต้องมีโปรเจ็กต์ Maven, Java 8 และ Intelliji Idea Ultimate Insertpom.xml
: อย่าลืมคลิกปุ่มโหลดการเปลี่ยนแปลง Maven ซึ่งจะปรากฏที่มุมขวาบน ตรวจสอบให้แน่ใจว่าคุณใช้ Java 8 หรือสูงกว่า ซึ่งสามารถพบได้ในไฟล์ -> การตั้งค่าโครงการ -> โครงการ ในโฟลเดอร์src.main.java
ให้สร้างโฟลเดอร์ย่อยด้วยชื่อบอทของคุณ สำหรับฉันมันคือexample.TelegramBot
แพ็คเกจ ขั้นแรกเราสร้างคลาสTelegramBot
ที่สืบทอดAbilityBot
. หาก Idea ขีดเส้นใต้ด้วยสีแดง (และเป็นเช่นนั้น) ให้คลิกนำเข้าคลาส abilityBot มีวิธีหนึ่งที่ต้องนำไปใช้ - 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
เปลี่ยนเป็นสีแดงตามธรรมชาติ - ต้องสร้างอินเทอร์เฟซนี้ มันจะเก็บสตริงและหมายเลขประจำตัว แน่นอนว่าคุณไม่จำเป็นต้องกังวลและทิ้งทุกอย่างไว้ในเอกสารหลัก แต่วิธีนี้จะชัดเจนกว่ามาก เรามาสร้างอินเทอร์เฟซกันดีConstans
กว่า ตัวแปรแรกจะเป็นString BOT_TOKEN
(โทเค็นที่ BotFather ส่ง) String BOT_USERNAME
และ int CREATOR_ID
จำเป็นต้องมี ID ผู้สร้างเพื่อความปลอดภัยเพิ่มเติม - คุณสามารถค้นหาได้ในภายหลัง
ปล่อย
สร้างคลาสApplication
ที่จะมีเมธอดmain()
พร้อมโค้ดที่จำเป็นในการเริ่มต้นบอท
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();
}
}
}
ตอนนี้คุณสามารถเปิดบอทได้จากวิธีการหลัก แต่จะไม่ดำเนินการใดๆ ความเงียบเท่านั้นที่จะเป็นคำตอบของคุณ ในส่วนถัดไป ผมจะอธิบายวิธีการเปลี่ยนแปลงนี้ ส่วนที่ 2
GO TO FULL VERSION