اشتراک در خبرنامه‌ دارکوب وب

با عضویت در خبرنامه‌ی دارکوب وب مقالات و آموزش‌ها هر هفته به ایمیل شما ارسال می‌شود.

آموزش ساخت ربات تلگرام – قسمت سوم

چگونه در ربات دکمه ایجاد کنیم :

برای ایجاد دکمه من متدی به نام ReplyKeyboardMarkup در کلاس DarkoobHandler ایجاد می کنم به شکل زیر :

private static ReplyKeyboardMarkup getMainMenuKeyboard() {
 ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
 replyKeyboardMarkup.setSelective(true);
 replyKeyboardMarkup.setResizeKeyboard(true);
 replyKeyboardMarkup.setOneTimeKeyboad(false);
 List<KeyboardRow> keyboard = new ArrayList<>();
 KeyboardRow keyboardFirstRow = new KeyboardRow();
 keyboardFirstRow.add(getOurWorks());
 keyboardFirstRow.add(getAboutUs());
 KeyboardRow keyboardSecondRow = new KeyboardRow();
 keyboardSecondRow.add(getContactUs());
 keyboardSecondRow.add(getWebAddress());
 keyboard.add(keyboardFirstRow);
 keyboard.add(keyboardSecondRow);
 replyKeyboardMarkup.setKeyboard(keyboard);

 return replyKeyboardMarkup;
}

دراین متد من متدهای دیگری مانند getContactUs را صدا زده ام ، باید این متد هارا نیز ایجاد کنید .

من چهار دکمه دارم و چهار متد نیز ایجاد کرده ام.


private static String getWebAddress() {
return "آدرس سایت";
}


private static String getContactUs() {
return "تماس باما";
}

private static String getOurWorks() {
return "نمونه کارها";
}

private static String getAboutUs() {
return "درباره ما";
}

 

سپس وقت آن رسیده تا متد onUpdateReceived را کمی تغییر دهیم ، به شکل زیر :


@Override
public void onUpdateReceived(Update update) {

if (update.hasMessage()) {
Message message = update.getMessage();
if (message.hasText() || message.hasLocation()) {
try {
handleIncomingMessage(message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}


}

}

همان طور که می بینید ، متدی به نام handelIncomingMessage صدا زده شده است ، بیاید آن را ایجاد کنیم :


private void handleIncomingMessage(Message message) throws TelegramApiException {

answerUser(message);
}

فعلا این متد کار ساده ای انجام میدهد و آن صدا زدن متدی به نام مanswerUser است اما در آینده کارهای دیگری نیز انجام خواهد داد که در این مبحث نمی گنجد.

اما در answerUser چه چیزی وجود دارد ؟ به کد زیر دقت کنید :


private void answerUser(Message message) {

ReplyKeyboardMarkup replyKeyboardMarkup = <em>getMainMenuKeyboard</em>();

SendMessage sendMessageRequest = new SendMessage();

if (replyKeyboardMarkup != null) {
sendMessageRequest.setReplyMarkup(replyKeyboardMarkup);
}

if (message.hasText()) {


sendMessageRequest.setChatId(message.getChatId().toString());

String userMessage = message.getText();
switch (userMessage) {

case "تماس باما":

sendMessageRequest.setText("مراجعه حضوری: مشهد، بلوار امامت، امامت ۴۶، پلاک ۷۵/۱، واحد یک (قبل از مراجعه لطفآ هماهنگ کنید)\n" +
"ارتباط تلفنی: ۰۵۱۳۶۰۴۰۲۳۱");
break;
case "آدرس سایت":

sendMessageRequest.setText("http://darkoobweb.com/");
break;
case "نمونه کارها":

sendMessageRequest.setText("http://darkoobweb.com/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7/");
break;
case "درباره ما":

sendMessageRequest.setText("\u200C\u200Cما در زمینه\u200Cی طراحی و توسعه\u200Cی وب فارسی فعال هستیم. نشاط، انگیزه و نوآوری اولین چیزی\u200Cست که از تیم ما به چشم می\u200Cخورد. موضوع اصلی فعالیت ما تولید پوسته\u200Cهای ایرانی برای سیستم وردپرس است. همچنین برنامه نویسی، طراحی سایت، خدمات میزبانی و ... از جمله خدمات ماست.");
break;
case "/start":

sendMessageRequest.setText("خوش آمدید");
break;
}
try {
sendMessage(sendMessageRequest);
} catch (TelegramApiException e) {
sendMessageRequest.setText("Darkoobwebbot");
}
}

}

حال برنامه را اجرا کنید ، و به دنبال @DarkoobWebBot در تلگرام بگردید ، شکل زیر را مشاهده خواهید کرد .

pic3TbotPart3

موفق باشید .

به زودی آموزش ساخت ربات تلگرام به زبان php در سایت اضافه میگردد.

درباره نویسنده

پوریا

سلام ، من پوریا هستم با جاوا آشنایی دارم به هوش مصنوعی و امنیت علاقه مندم و امید وارم آموزش هایی که در وب سایت قرار می دم برای شما مفید باشه ، موفق باشید {^}

نظر دهید

سوالات، انتقادات و پیشنهادات خود را در مورد این مطلب برای ما بفرستید. :-)