JavaRush /جاوا بلاگ /Random-UR /پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - "A سے Z تک جاوا پروج...

پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - "A سے Z تک جاوا پروجیکٹ"

گروپ میں شائع ہوا۔
سلام، میرے پیارے دوستو۔ جی ہاں، بالکل دوستو۔ میں مضامین کے اس سلسلے سے پہلے ہی اتنا واقف ہو چکا ہوں کہ وہ لوگ جو باقاعدگی سے تبصروں میں اپنا شکریہ ادا کرتے ہیں اور/یا یہ ظاہر کرتے ہیں کہ انہوں نے مواد کو پڑھ اور سمجھ لیا ہے، پہلے ہی قریب ہو چکے ہیں۔ آپ اور میں دو سمتوں سے ایک ہی مقصد کی طرف بڑھ رہے ہیں۔ آپ سمجھنا چاہتے ہیں، لیکن میں سمجھانا چاہتا ہوں۔ اور ہمارا ایک ہی حتمی مقصد ہے - ایک تحریری درخواست جو شروع سے آخر تک آپ کے لیے قابل فہم ہے۔ آپ نے اس مضمون میں جو کچھ بیان کروں گا اس کے بارے میں آپ نے پہلے ہی سنا ہوگا۔ مجھے نہیں لگتا کہ میں آپ کو کوئی نئی اور غیر معمولی بات بتاؤں گا (لیکن پروجیکٹ کے فریم ورک کے اندر اسے جاننا/دوہرانا ضروری ہے)۔ "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - 1موسم بہار میں میں نے اپنے لیے ایک بوٹ لکھا، لہذا ہم اس کے "نمونوں" پر بھروسہ کریں گے۔

ہم JRTB-2 لکھتے ہیں۔

ہم ویسا ہی کریں گے جیسا کہ ہم نے ٹاسک JRTB-0 کے ساتھ مضمون میں کیا تھا ۔
  1. ہم ctrl + t مجموعہ استعمال کرکے مقامی پروجیکٹ میں مین برانچ کو اپ ڈیٹ کرتے ہیں ۔"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 2
  2. مرکزی شاخ کی بنیاد پر، ہم بناتے ہیں:"جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - 3
  3. ایک بوٹ شامل کریں۔
  4. ہم کیا کیا گیا ہے اس کی تفصیل کے ساتھ ایک نیا عہد بناتے ہیں اور اسے GitHub پر دھکیلتے ہیں۔
  5. مین برانچ کے لیے پل کی درخواست بنائیں اور اسے دوبارہ چیک کریں۔ ہم تعمیر کے گزرنے کا انتظار کر رہے ہیں (گیتھب ایکشنز)، اسے مین برانچ میں ضم کر دیں۔
  6. متعلقہ کام کو بند کریں۔

ٹیلیگرام بوٹ کیا ہے؟

ہم، ڈویلپرز، ٹیلیگرام بوٹ کے ساتھ کام کرنے کا اس طرح تصور کر سکتے ہیں: ہم ان کے کلائنٹ کو ان کے ساتھ کام کرنے کے لیے استعمال کرتے ہیں۔ ہمارے پاس کام کے لیے ایک ریڈی میڈ لائبریری ہے ۔ کارروائیوں کا ایک مجموعہ ہے جس کے بعد ٹیلیگرام بوٹ کو معلوم ہو جائے گا کہ یہ ہمارے پروگرام سے وابستہ ہے۔ اور پہلے سے ہی پروگرام کے اندر ہم سیکھیں گے کہ خطوط، کمانڈ کیسے وصول کیے جاتے ہیں اور کسی نہ کسی طرح ان پر کارروائی کی جاتی ہے۔ ٹیلیگرام بوٹس میں کمانڈ جیسی ایک چیز ہے : یہ سلیش "/" سے شروع ہوتی ہے۔ اس کے بعد، ہم فوری طور پر لفظ کو ایک ساتھ لکھتے ہیں، اور یہ ایک حکم سمجھا جائے گا. مثال کے طور پر، دو احکامات ہیں جو ہر ایک کو معلوم ہونا چاہئے:
  • /start - بوٹ کے ساتھ کام کرنا شروع کریں۔
  • /stop - بوٹ کے ساتھ کام ختم کریں۔
باقی ہم خود کر لیں گے۔ مجھے فوراً ریزرویشن کرنے دو: ہم بالکل وہی کریں گے جو میں نے سیکھا ہے۔ اور بوٹ کے ساتھ کام کرتے وقت، مجھے یقین ہے کہ اس سے بہتر کام کرنا ممکن ہوگا۔ اور اگر کوئی ایسا کرنا چاہتا ہے تو میں صرف خوش ہوں گا اور اس کوشش کی ہر ممکن حمایت کروں گا۔ ویسے، سب سے پہلی چیز جو اچھی ہو گی وہ یہ ہے کہ اگر کوئی مجھے سمجھائے کہ کمانڈز کی تفصیل کو کوڈ کے ذریعے کیسے پروگرام کیا جائے، نہ کہ ٹیلی گرام میں بوٹ سیٹنگز کے ذریعے۔ میں نے یہ نہیں سیکھا۔ ہمارے پاس اپنے وسائل پر کئی مضامین ہیں جو بیان کرتے ہیں کہ بنیادی بوٹ کیسے بنایا جائے: آج ہم کچھ ایسا ہی کریں گے۔ اگر آپ کے مزید سوالات ہیں تو، میں اس مضمون کے ذریعے سکیمنگ کی سفارش کرتا ہوں۔

BotFather کے ساتھ ایک بوٹ بنائیں

بوٹ کو جوڑنے کے لیے، آپ کو پہلے اسے بنانا ہوگا۔ ٹیلیگرام کا ایک طریقہ ہے - اپنے منفرد نام کے ساتھ بوٹ بنانا۔ اس کے ساتھ ایک ٹوکن بھی ہوگا (ایک بڑی تار جو پاس ورڈ کی طرح کام کرتی ہے)۔ میں نے پہلے ہی JavaRush - @javarush_community_bot کے لیے ایک بوٹ بنا لیا ہے ۔ یہ بوٹ ابھی تک خالی ہے اور کچھ نہیں کر سکتا۔ اہم بات یہ ہے کہ نام کے آخر میں _bot ہونا چاہیے ۔ یہ دکھانے کے لیے کہ یہ کیسے کرنا ہے، میں ایک بوٹ بناؤں گا جس پر ہم اپنی فعالیت کی جانچ کریں گے۔ حقیقی منصوبوں کے لحاظ سے، یہ ایک آزمائشی ماحول ہوگا۔ اور ہمارا سب سے اہم پروڈ ماحول ہوگا (پروڈ - پروڈکشن، یعنی حقیقی ماحول جس پر پروجیکٹ کو عمل میں لایا جائے گا)۔ بلاشبہ، ایک اور ماحول شامل کرنا ممکن ہو گا - ایک سینڈ باکس ماحول: ایک عام سینڈ باکس، زیادہ قابل تبدیلی اور تمام ترقیاتی شرکاء کے لیے قابل رسائی۔ لیکن یہ صرف پروجیکٹ کی تخلیق کے مرحلے پر صورتحال کو پیچیدہ کرے گا۔ ابھی کے لیے، آئیے ٹیسٹ اور سینڈ باکس کے ماحول کے لیے دو مزید بوٹس بنائیں۔ پہلا مرحلہ ٹیلیگرام میں ہی بوٹ بنانا (رجسٹر) کرنا ہے۔ ہمیں بوٹ تلاش کرنے کی ضرورت ہے: @BotFather اور اس پر کمانڈ لکھیں: /newbot"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 4 اگلا، ہم سے اس بوٹ کو ایک نام دینے کو کہا جاتا ہے۔ چونکہ یہ جانچ کے کاموں کے لیے ایک بوٹ ہے، اس لیے اس کا نام مناسب ہوگا: [TEST] JavarushBot"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 5 اب وقت آگیا ہے کہ ایک منفرد نام دیا جائے جس کے ذریعے اسے ہمیشہ پایا جا سکتا ہے - اس کا صارف نام: test_javarush_community"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 6 جیسا کہ میں نے اوپر کہا، آپ کو _bot شامل کرنے کی ضرورت ہے۔ صارف نام کا لاحقہ، تو ہم دوبارہ لکھتے ہیں: test_javarush_community_bot"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 7 اور بس! بوٹ بنایا گیا ہے۔ اب، صارف نام اور ٹوکن کا استعمال کرتے ہوئے، اسے ہمارے پروجیکٹ سے منسلک کیا جا سکتا ہے۔ بلاشبہ، ٹیسٹ سرور کے ہموار آپریشن کے لیے، میں عوامی دیکھنے کے لیے اس بوٹ کا ٹوکن (بنیادی طور پر بوٹ تک رسائی کے لیے پاس ورڈ) ظاہر نہیں کروں گا۔

ہم بوٹ کو پروجیکٹ سے جوڑتے ہیں۔

ہم لائبریری کو معمول کے مطابق شامل نہیں کریں گے، لیکن فوری طور پر اپنے کنکال - اسپرنگ بوٹ سے فائدہ اٹھائیں گے۔ اس کے پاس اسٹارٹر جیسی چیز ہے۔ لائبریری کو شامل کر کے، ہم SpringBoot کو یہ بتانے کے لیے استعمال کر سکتے ہیں کہ ہم پروجیکٹ کو صحیح طریقے سے ترتیب دینا چاہتے ہیں۔ اگر ہم معمول کے راستے پر جائیں، جو کہ بہت سی جگہوں پر بیان کیا گیا ہے، تو ہمیں کسی جگہ ایک کنفیگریشن بنانے کی ضرورت ہوگی جس میں کچھ اس طرح ہو:
ApiContextInitializer.init();
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
try {
  telegramBotsApi.registerBot(Bot.getBot());
} catch (TelegramApiRequestException e) {
  e.printStackTrace();
}
یہاں ایک آبجیکٹ بنایا گیا ہے جس کے ساتھ آپ بوٹ کے ساتھ کنکشن قائم کر سکتے ہیں۔ ہمارے معاملے میں، ہم جس سٹارٹر کو جوڑنا چاہتے ہیں وہ ہمارے لیے کہیں نہ کہیں "انڈر دی ہڈ" کرے گا (یہ آئی ٹی میں اکثر استعمال ہونے والے فقرے کا ترجمہ بھی ہے - انڈر دی ہڈ)۔ یہاں اس اسٹارٹر کا ایک لنک ہے ۔ آپ فوری طور پر README.md فائل سے دیکھ سکتے ہیں کہ یہ کیا ہے، کیوں اور اسے کیسے استعمال کیا جائے۔ اسے مربوط کرنے کے لیے، آپ کو صرف اس انحصار کو میموری میں شامل کرنے کی ضرورت ہے۔ بس اتنا ہے :) یہاں مطلوبہ انحصار ہے:
<dependency>
        <groupId>org.telegram</groupId>
        <artifactId>telegrambots-spring-boot-starter</artifactId>
        <version>5.0.1</version>
    </dependency>
ہم اسے اپنی یادداشت میں شامل کرتے ہیں۔ ہم توقع کے مطابق ورژن انسٹال کرتے ہیں اور Maven پروجیکٹ کو اپ ڈیٹ کرتے ہیں۔ "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 8تفصیل کی بنیاد پر، ہمیں صرف ایک نئی کلاس بنانے کی ضرورت ہے، TelegramLongPollingBot سے وراثت میں حاصل کریں اور اس کلاس کو اپنے SpringBoot کے ایپلیکیشن سیاق و سباق میں شامل کریں۔ ایپلیکیشن سیاق و سباق وہ جگہ ہے جہاں پروجیکٹ کو چلانے کے لیے تخلیق کردہ اشیاء کو محفوظ کیا جاتا ہے۔ کلاس شامل کرنے کے لیے، آپ کو تشریحات میں سے ایک استعمال کرنے کی ضرورت ہے: @Component، @Service، @Repository، @Controller۔ یا @Bean تشریح اگر کنفیگریشن کلاس میں کسی طریقہ کے ذریعے بنائی گئی ہو (یعنی ایسی کلاس میں جس پر کنفیگریشن تشریح کے ساتھ نشان لگایا گیا ہو)۔ میں سمجھتا ہوں کہ یہ سب کچھ اب بھی سمجھ سے باہر ہے۔ لیکن جب آپ اس کا پتہ لگانا شروع کریں گے تو آپ دیکھیں گے کہ وہاں کچھ بھی پیچیدہ نہیں ہے۔ Spring Boot کو تیزی سے سمجھنے کے لیے، میں ایک عمدہ کتاب تجویز کرتا ہوں - Spring In Action 5th ایڈیشن۔ اگر خواہش ہو تو اس کتاب پر مبنی مضامین کا سلسلہ لکھ سکتا ہوں۔ چلو واپس جا ئیں. اس پیکیج میں جو JavarushTelegramBotApplication پر مشتمل ہے، ہم بوٹ پیکج بناتے ہیں ، جس میں ہمارا ٹیلیگرام بوٹ ہوگا۔ اس کا نام JavaRushTelegramBot ہوگا :
package com.github.javarushcommunity.jrtb.bot;

import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update;

/**
* Telegrambot for Javarush Community from Javarush community.
*/
@Component
public class JavarushTelegramBot extends TelegramLongPollingBot {

   @Override
   public void onUpdateReceived(Update update) {

   }

   @Override
   public String getBotUsername() {
       return null;
   }

   @Override
   public String getBotToken() {
       return null;
   }
}
یہ کلاس خلاصہ تھی اور تین طریقوں کو نافذ کرنا تھا۔ آئیے ان کے بارے میں مزید تفصیل سے بات کرتے ہیں:
  • onUpdateReceived(اپ ڈیٹ اپ ڈیٹ) - یہ داخلی نقطہ ہے جہاں صارفین کے پیغامات پہنچیں گے۔ تمام نئی منطق یہاں سے آئے گی۔
  • getBotUsername() - یہاں آپ کو ہمارے بوٹ کا صارف نام شامل کرنا ہوگا جس سے ہم جڑیں گے؛
  • getBotToken() - اور یہ، اس کے مطابق، بوٹ ٹوکن ہے۔
بنیادی طور پر یہ کسی سائٹ کے لیے لاگ ان اور پاس ورڈ کی طرح ہے۔ ہم ابھی اس قدر کو واضح طور پر نہیں لکھیں گے۔ اسے "ہارڈ کوڈنگ" کہا جاتا ہے (یعنی کسی خاص قدر کو بائنڈنگ کرنا - ہمیشہ کی طرح، انگریزی ہارڈ کوڈ سے کاغذ کا سراغ لگانا)۔ آپ کو ایسا نہیں کرنا چاہیے۔ ہم دوسرے راستے پر جائیں گے - ہم اس ڈیٹا کو application.properties کلاس میں لکھیں گے اور اسے یہاں سے پڑھیں گے۔ یہ کیوں ضروری ہے؟ پھر، تاکہ جب ایپلی کیشن شروع ہو، ہم ان اقدار کو بیرونی طور پر سیٹ کر سکیں۔ یہ لچکدار ہے، یہ درست ہے۔ فائل src/main/resources/application.properties پر جائیں۔ وہاں ہم ان متغیرات کے نام لے کر آئیں گے۔ .properties ایکسٹینشن والی فائلوں کو کلیدی قدر کے ڈھانچے کے طور پر پڑھا جاتا ہے جسے "=" سے الگ کیا جاتا ہے، ہر جوڑا الگ لائن ہوتا ہے۔ تو میں ان متغیرات کے ساتھ آیا:
  • bot.username ;
  • bot.token _
یہ ایسا ہی نظر آئے گا: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 9SpringBoot میں ایک زبردست تشریح ہے - @Value۔ اگر صحیح طریقے سے استعمال کیا جائے تو، یہ application.properties فائل سے اقدار کو کھینچ لے گا۔ ہم اس کے ساتھ پروجیکٹ کو اپ ڈیٹ کرتے ہیں:
package com.github.javarushcommunity.jrtb.bot;

import org.springframework.beans.factory.annotation.Value;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update;

/**
* Telegram bot for Javarush Community from Javarush community.
*/
@Component
public class JavarushTelegramBot extends TelegramLongPollingBot {

   @Value("${bot.username}")
   private String username;

   @Value("${bot.token}")
   private String token;

   @Override
   public void onUpdateReceived(Update update) {

   }

   @Override
   public String getBotUsername() {
       return username;
   }

   @Override
   public String getBotToken() {
       return token;
   }
}
یہ دیکھا جا سکتا ہے کہ ہم نے متغیر کی قدر کو تشریح میں منتقل کر دیا ہے۔ اور جب SpringBoot ہمارے بوٹ آبجیکٹ کو تخلیق کرتا ہے، تو قدریں پراپرٹیز سے لی جائیں گی (دوبارہ، انگریزی سے ٹریسنگ پیپر - پراپرٹیز)۔ ہم تقریباً وہاں پہنچ چکے ہیں۔ آپ کو بوٹ کو کچھ جواب دینے کی ضرورت ہے۔ لہذا، آئیے onUpdateReceived طریقہ کو اپ ڈیٹ کریں ۔ ہمیں بوٹ پر آنے والے پیغام کو بازیافت کرنے اور اسے واپس بھیجنے کی ضرورت ہے۔ اس طرح ہم جان لیں گے کہ بوٹ کام کر رہا ہے۔ ایسا کرنے کے لیے، ہم تقریباً اور جلدی سے لکھیں گے کہ کیا ضرورت ہے:
@Override
public void onUpdateReceived(Update update) {
   if(update.hasMessage() && update.getMessage().hasText()) {
       String message = update.getMessage().getText().trim();
       String chatId = update.getMessage().getChatId().toString();

       SendMessage sm = new SendMessage();
       sm.setChatId(chatId);
       sm.setText(message);

       try {
           execute(sm);
       } catch (TelegramApiException e) {
           //todo add logging to the project.
           e.printStackTrace();
       }
   }
}
یہاں سب کچھ بہت آسان ہے: ہم چیک کرتے ہیں کہ پیغام واقعی موجود ہے، لہذا ہم خود ہی پیغام ( پیغام ) اور چیٹ آئی ڈی ( chatId ) کو نکالتے ہیں جس میں خط و کتابت ہو رہی ہے۔ اس کے بعد، ہم پیغام بھیجنے کے لیے ایک آبجیکٹ بناتے ہیں SendMessage ، خود پیغام اور چیٹ آئی ڈی اسے بھیجتے ہیں - یعنی بوٹ کو کیا بھیجنا ہے اور کہاں۔ ہمارے پاس پہلے ہی یہ کافی ہے۔ اگلا، ہم JavarushTelegramBotApplication کلاس میں بنیادی طریقہ چلاتے ہیں اور ٹیلیگرام میں اپنے بوٹ کو تلاش کرتے ہیں: "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 10لاگز سے ہم دیکھتے ہیں کہ بوٹ شروع ہو گیا ہے۔ لہذا، اب وقت آگیا ہے کہ ٹیلی گرام پر جائیں اور بوٹ کو لکھیں: "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 11ہم اسٹارٹ پر کلک کرتے ہیں اور ہمیں فوری طور پر جواب موصول ہوتا ہے: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 12آئیے چیک کرنے کے لیے کچھ اور بکواس لکھتے ہیں: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 13اور بس، اس وقت ہم کہہ سکتے ہیں کہ ہمارا JRTB-2 کام مکمل ہو گیا ہے۔ . آپ واقعی یہاں ابھی تک کوئی ٹیسٹ نہیں لکھ سکتے، اس لیے ہم سب کچھ ویسا ہی چھوڑ دیں گے۔ اس کے بعد آپ کو ایک نیا عہد بنانے کی ضرورت ہے: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 14کمٹ کے نام پر توجہ دیں: ایک بار پھر میں آپ کی توجہ اس طرف مبذول کر رہا ہوں۔ ایک کمٹ میں پہلے کام کا نام ہوتا ہے، اور پھر کیا کیا گیا ہے اس کی مزید تفصیلی وضاحت۔ Commit and Push... پر کلک کریں اور دوبارہ Push پر کلک کرکے تصدیق کریں : ہمارے پروجیکٹ"جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 15 پر جائیں ۔ پہلے کی طرح، GitHub نے پہلے ہی نئی برانچ دیکھی ہے اور مین کے لیے پل کی درخواست بنانے کی پیشکش کی ہے۔ ہم مزاحمت نہیں کرتے اور اسے تخلیق کرتے ہیں: ہمیشہ کی طرح، ہم نے پہلے ہی ایک لیبل، ایک پروجیکٹ کا انتخاب کیا ہے اور اسے مجھے تفویض کیا ہے۔ آخر میں، پل کی درخواست بنائیں پر کلک کریں۔ آئیے تھوڑا انتظار کریں جب تک کہ تعمیر مکمل ہو جائے - اور بس، پل کی درخواست ضم ہونے کے لیے تیار ہے:"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - 16"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 17

ورژننگ

میں نے کسی نہ کسی طرح یہ نقطہ یاد کیا کہ ہمیں ورژن بنانے کی ضرورت ہے۔ ایسا کرنے کے لیے، ہم اپنی برانچ میں کچھ اور تبدیلیاں کریں گے۔ ہم IDEA پر واپس جاتے ہیں اور میموری میں پروجیکٹ ورژن کو دیکھتے ہیں: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 18ورژن 0.0.1-SNAPSHOT ہے ۔ یہ ڈیوٹی ورژن ہے۔ اور ہم ہر نئے حل شدہ مسئلے کے ساتھ پروجیکٹ کے ورژن کو اپ ڈیٹ کرکے شروع کریں گے۔ جب تک ہم MVP تک نہیں پہنچیں گے، ورژن لاحقہ کے ساتھ آئے گا -SNAPSHOT۔ ورژننگ اسکیم کیا ہوگی؟ XYZ-SNAPSHOT کہاں:
  • X - اہم ورژن اپ ڈیٹ، اکثر پچھلے ورژن کے ساتھ پسماندہ مطابقت کے ساتھ مسائل پر مشتمل ہے؛
  • Y - بہت بڑی تبدیلیاں نہیں، پچھلے ورژن کے ساتھ مکمل طور پر ہم آہنگ؛
  • Z نقائص کا ایک کاؤنٹر ہے جو ہم نے پایا اور ٹھیک کیا۔
اس کی بنیاد پر، ہمارے پاس پہلا ورژن ہوگا - 0.1.0-SNAPSHOT - یعنی ہمارے پاس ابھی تک کوئی بڑی اپ ڈیٹس نہیں ہیں، بس ہر چیز کا تھوڑا سا، اور ہم ابھی تک MVP تک نہیں پہنچے ہیں، اس لیے ایک لاحقہ ہے -SNAPSHOT . آئیے اسے میموری میں تبدیل کریں: "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - 19RELEASE_NOTES فائل پر جائیں، جہاں ہم ہر نئے ورژن کے ساتھ پروجیکٹ میں ہونے والی تبدیلیوں کو بیان کریں گے: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 20ہماری پہلی انٹری۔ اب، ہر بعد کے ورژن کی تازہ کاری کے ساتھ، ہم یہاں بیان کریں گے کہ اصل میں کیا ہوا۔ ہم اس معاملے کا ارتکاب کرتے ہیں، ایک تفصیل لکھتے ہیں: JRTB-2: اپ ڈیٹ شدہ پروجیکٹ ورژن اور RELEASE_NOTES میں شامل کیا گیا سب کچھ پہلے جیسا ہی ہے۔ ہم تعمیر کے پاس ہونے کا انتظار کر رہے ہیں اور ہم اپنی تبدیلیوں کو ضم کر سکتے ہیں۔ صرف یہاں یہ تھوڑا مختلف ہو جائے گا. میں اس بات کو یقینی بنانا چاہتا ہوں کہ مرکزی برانچ میں ہر کام ایک الگ عہد ہے، لہذا صرف مرج پل کی درخواست کو آگے بڑھانا ہمارے کام نہیں آئے گا۔ گٹ کے پاس گٹ اسکواش آپشن ہے، جو تمام کمٹ کو ایک میں جمع کرتا ہے اور ان کو ضم کرتا ہے۔ ہم اس آپشن کو منتخب کرتے ہیں: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 21اسکواش پر کلک کریں اور ضم کریں، اور ہمیں پیغام میں ترمیم کرنے کی پیشکش کی جاتی ہے، جو آخر میں ہوگا: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلیگرام بوٹ شامل کرنا - 22بہت آسان اور سب سے اہم بات، جس چیز کی مانگ ہے۔ ویسے، میں نے بٹ بکٹ پر ایسی کوئی خصوصیت نہیں دیکھی ہے =/ انضمام کی تصدیق کریں۔ ہمارے بورڈ میں کام کی حیثیت کو مکمل کرنے کے لئے صرف ایک چیز باقی ہے، پل کی درخواست کے لنک کے ساتھ ایک تبصرہ لکھیں اور اسے بند کریں: "جاوا پروجیکٹ A سے Z تک": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 23ہمارا بورڈ اب ایسا لگتا ہے:"A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 24

نتیجہ

آج ہم نے مرحلہ وار ٹیلیگرام بوٹ بنایا اور اسے اپنے SpringBoot پروجیکٹ میں لاگو کیا۔ بوٹ کام کرتا ہے اور جواب دیتا ہے۔ ہم نے فوری طور پر خصوصیات کے ذریعے بوٹ ڈیٹا تک رسائی حاصل کی۔ مزید آنے والے ہیں: ہم ایک بڑا کام کریں گے - JRTB-3 انجام دیں گے - اپنے پروجیکٹ کے لیے ایک کمانڈ پیٹرن شامل کریں گے۔ اوہ ایک اور بات... میں نے آپ کو بتایا کہ میں ٹوکن شائع نہیں کروں گا تاکہ یہ استعمال نہ ہو۔ لیکن چونکہ میں مضمون آدھی رات کے قریب لکھ رہا تھا اور کام کے بعد، یہ پتہ چلا کہ میں نے ذخیرہ میں ایک درست ٹوکن پوسٹ کیا تھا، اور گٹ گارڈین نے مجھے ایک خط میں اس کے بارے میں بتایا: "A سے Z تک جاوا پروجیکٹ": پروجیکٹ میں ٹیلی گرام بوٹ شامل کرنا - 25اس کے لیے ان کا شکریہ! اب کیا کیا جائے؟ اب اسے گٹ سے حذف کرنا ممکن نہیں رہے گا، کیوں کہ اگر میں اس ٹوکن کے بغیر کوئی نیا کمٹ اپ لوڈ کرتا ہوں تو بھی یہ پرانے میں ہی رہے گا۔ لیکن میں اس عہد کو حذف اور واپس نہیں کرنا چاہتا۔ تو میں نے جا کر پہلے ہی ذکر کردہ بوٹ فادر سے ٹوکن کو غیر فعال کر دیا۔ اب ٹوکن موجود ہے، لیکن اب یہ درست نہیں ہے۔ مضمون شائع کرنے سے پہلے اس کے تمام کوڈ دیکھنے کے لیے میرے GitHub اکاؤنٹ کو سبسکرائب کریں ۔ پڑھنے کے لیے آپ سب کا شکریہ، جلد ملتے ہیں۔

سیریز کے تمام مواد کی فہرست اس مضمون کے شروع میں ہے۔

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION