هيلو سڀ! توهان جي پڙهائي ۾ ڪجهه نقطي تي، توهان حقيقي منصوبن ٺاهڻ لاء مسئلا حل ڪرڻ کان منتقل ٿيڻ چاهيو ٿا جيڪي توهان جي پورٽ فوليو جو بنياد بڻجي ويندا. جڏهن مون پنهنجي انٽرنيشنل شپ شروع ڪئي (جنهن جي آئون هر ڪنهن کي سفارش ڪريان ٿو)، مون کي هڪ ٽيليگرام بوٽ لکڻ جي آڇ ملي ٿي هڪ فري لانسر جي طور تي. منهنجي ٿوري ڄاڻ جي ڪري، مون هڪ بلڪل سادو ٻوٽو لکيو ( آخري انجام بهار ڏانهن لڏپلاڻ کان اڳ )، جنهن ۾ ٽي موضوع هئا:
۽ Telegram API هوندو : TelegramBots-Spring-Boot-Starter لائبريري ۾ Spring Boot ۽ Telegram API شامل آهن. ان کي استعمال ڪرڻ اسان کي اجازت ڏئي ٿو ته اسان جي ڪوڊ ۾ هڪ بوٽ جو اعلان بلڪل سادي طريقي سان، ۽ بهار پاڻ کي بين ٺاهي ۽ بوٽ کي چالو ڪندو. جيڪڏهن توهان دلچسپي وٺندا آهيو ته هن وقت هود هيٺ ڇا ٿي رهيو آهي، پوء لائبريري ذريعن کي ڏسو (ترقي جي ماحول ۾ يا Github تي ). اسان تاليف جا پيرا ميٽر پڻ شامل ڪندا آهيون: پوم ڀرڻ کان پوءِ سڀني انحصار کي اپڊيٽ ڪرڻ نه وساريو! اچو ته ٻه طبقا ٺاهيون - ايپ ۽ بوٽ، گڏوگڏ وسيلن جي فولڊر ۾ هڪ application.yaml فائل. منهنجي پروجيڪٽ جي جوڙجڪ هن طرح ڏسڻ ۾ اچي ٿي: هن اسٽيج تي، اچو ته اسان جي بوٽ جي سند کي شامل ڪريون application.yaml:
- پيغام وصول ڪرڻ وارو سلسلو؛
- پيغام موڪلڻ وارو سلسلو؛
- ايونٽ شيڊيولنگ ٿريڊ (اهو شيڊول ٿيل پيغامن لاءِ چيڪ ڪيو ويو ۽ JSON کان ڪيش ڪيل ڊيٽا کي اپڊيٽ ڪيو ويو).
bot:
name: JavaRushTelegramBot
token: 22313424:AAF4gck4D8gDhq68E7k0UH8vlyQADhxQhYo
درجه بندي نوٽيفڪيشن اسان کي ورجائڻ کان پاسو ڪرڻ جي اجازت ڏئي ٿي (bot.name، bot.token) ۽ پڙهڻ جي صلاحيت کي بهتر. جيڪڏهن توهان اڃا تائين ڪو بوٽ نه ٺاهيو آهي، توهان هڪ ٺاهي سگهو ٿا سرڪاري هدايتن تي عمل ڪندي . جيڪڏھن توھان نٿا چاھيو ته bot جي سندن کي application.yaml ۾ ڏيکاريو (جيڪو صحيح آھي)، استعمال ڪريو ماحوليات متغير جڏھن ترتيب ڏيو:
bot:
name: ${BOT_NAME}
token: ${BOT_TOKEN}
بوٽ ڪلاس کي ڀرڻ:
package com.whiskels.telegram.bot;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
// Аннотация @Component необходима, чтобы наш класс распознавался Spring, How полноправный Bean
@Component
// Наследуемся от TelegramLongPollingBot - абстрактного класса Telegram API
public class Bot extends TelegramLongPollingBot {
// Аннотация @Value позволяет задавать meaning полю путем считывания из application.yaml
@Value("${bot.name}")
private String botUsername;
@Value("${bot.token}")
private String botToken;
/* Перегружаем метод интерфейса LongPollingBot
Теперь при получении messages наш бот будет отвечать сообщением Hi!
*/
@Override
public void onUpdateReceived(Update update) {
try {
execute(new SendMessage().setChatId(update.getMessage().getChatId())
.setText("Hi!"));
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
// Геттеры, которые необходимы для наследования от TelegramLongPollingBot
public String getBotUsername() {
return botUsername;
}
public String getBotToken() {
return botToken;
}
}
ايپ ڪلاس ۾ ڀريو:
package com.whiskels.telegram;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.telegram.telegrambots.ApiContextInitializer;
// Аннотация, которая объединяет в себя @Configuration, @EnableAutoConfiguration, @ComponentScan
@SpringBootApplication
public class App {
public static void main(String[] args) {
// Здесь code написан по заветам
// https://github.com/rubenlagus/TelegramBots/tree/master/telegrambots-spring-boot-starter
ApiContextInitializer.init();
SpringApplication.run(App.class, args);
}
}
جيڪڏهن اسان سڀ ڪجهه صحيح طريقي سان ڪيو، ته پوء اسان هلائي سگهون ٿا مکيه ۽ اسان جي بوٽ کي هيلو چئي سگهون ٿا. تيار! اسان ڪاميابي سان لکيو آهي ۽ هڪ ٽيليگرام بوٽ شروع ڪيو آهي جيڪو هر ايندڙ پيغام کي هيلو چوي ٿو. جيڪڏهن هي مضمون توهان لاء ڪارائتو هو، ته پوء بهترين شڪرگذار ٿيندو جيڪڏهن توهان منهنجي مخزن کي ڏسو ۽ هڪ اسٽار ڇڏي ڏيو. اتي توهان کي ٽيليگرام بوٽ جو منهنجو نسخو پڻ ملندو، جنهن ۾ ڪيتريون ئي دلچسپ خاصيتون آهن:
- پوسٽ گريس ڊيٽابيس ۾ صارفين کي محفوظ ڪرڻ؛
- صارف جي ڪردار جي بنياد تي حڪمن تائين رسائي جي اختيار؛
- ميسيج هينڊلر ٺاهڻ ۽ صارف جي حقن جي جانچ ڪرڻ لاءِ حسب ضرورت بيانن جو استعمال @BotCommand ۽ @RequiredRoles؛
- نوٽيفڪيشن شيڊول ٺاهڻ لاءِ سپورٽ.
GO TO FULL VERSION