آموزش ساخت ربات تلگرام با جاوا – چگونه با استفاده از جاوا ربات تلگرام ایجاد کنیم؟
در این مقاله آموزشی از سری آموزش های پی استور، در مورد آموزش ساخت ربات تلگرام با جاوا صحبت خواهیم کرد. اگر تلگرام را به عنوان یک شبکه اجتماعی و پیام رسان محبوب در کشور فرض کنیم به یقین بایستی زبان برنامه نویسی جاوا را به عنوان یک زبان برنامه نویسی محبوب و پرکاربرد در دنیا بدانیم. حالا اگر بتوان با سازوکاری این دو محبوب را باهم برای هدفی استفاده کرد عالی خواهد شد. اگر شما هم علاقه مند هستید که ربات تلگرامی درست کنید و از آن استفاده کنید پس با ما همراه باشید. بطور کلی می توان گفت در این آموزش یاد خواهیم گرفت که چگونه با استفاده از جاوا ربات تلگرام ایجاد کنیم؟
مقدمه
اگر فقط کمی با زبان برنامه نویسی جاوا کار کرده باشید براحتی می توانید با استفاده از آموزش ساخت ربات تلگرام با جاوا، ربات های متنوعی را برای خود یا دیگران ایجاد کنید. ربات های تلگرام کاربردهای متنوعی از کاربردهای تجاری گرفته تا بازی و سرگرمی دارند و برای علایق شخصی نیز می تواند مورد استفاده قرار گیرد.
می توان گفت ربات های تلگرام هر کاری را انجام می دهند. این ربات ها در واقع اکانت های ویژه کاربری هستند که برای استفاده شدن نیازی به شماره تلفن ندارند و کاربران به دو صورت می توانند با آن ها ارتباط برقرار کنند:
- ارسال پیغام یا دستورات از طریق شروع یک مکالمه
- ارسال درخواست مستقیم با نام کاربری ربات همراه با @
از دیدگاه فنی بهتر است بدانید، دستورات و اطلاعاتی که کاربران به ربات تلگرام ارسال می کنند؛ ابتدا این اطلاعات و درخواست ها به نرم افزار قرار گرفته شده در سرور تلگرام ارسال می شود پس از دریافت درخواست از طرف سرور، سرورهای واسط تلگرام ارتباط بین ربات و API را مدیریت می کنند. مجوز این ارتباط یک توکن است که از طرف تلگرام در اختیار توسعه دهندگان و برنامه نویسان قرار داده می شود که اغلب بصورت رایگان است.
قبل از آموزش ساخت ربات تلگرام با جاوا بایستی اطلاعاتی در مورد زبان برنامه نویسی جاوا و نحوه کارکرد ربات های تگرام داشته باشید و اگر هم هیچ اطلاعاتی از موارد گفته شده ندارید؛ باز جای نگرانی نیست در خلال آموزش بهترین منابع آموزشی مرتبط را برای شما عزیزان معرفی خواهیم کرد. در ضمن اگر در رابطه با برنامه نویسی جاوا علاقه مند هستید می توانید مقاله پیش بینی آینده زبان برنامه نویسی جاوا – آشنایی با قدرت بی نظیر زبان برنامه نویسی جاوا را نیز مطالعه فرمایید. خوب بهتر است وقت را تلف نکنیم و بسراغ مراحل آموزش ساخت ربات تلگرام با جاوا برویم.
گام اول: گرفتن توکن API
در اولین گام از آموزش ساخت ربات تلگرام با جاوا، بایستی توکن API تلگرام را داشته باشید. API مخفف Application Programming Interface یعنی واسط برنامه نویسی کاربردی است و توکن API هم در واقع یک شناسه منحصربه فرد برای ارتباط Application با یک زبان برنامه نویسی است. برای گرفتن توکن API تلگرام، به اکانت تلگرامی خود وارد شوید و در بخش جستجو عبارت BotFather@ را جستجو کنید. در این آموزش از نسخه دسکتاپ تلگرام استفاده شده است و هیچ فرقی با نسخه موبایل ندارد یعنی همین کارها را می توانید در نسخه موبایل خود نیز انجام دهید. پس از جستجو مانند تصویر زیر روی BotFather کلیک کنید تا مراحل کار را ادامه دهیم.
برروی Start کلیک کنید تا مانند تصویر زیر لیستی از فرمان های بات فادر را مشاهده کنید. گزینه های مختلفی در صفحه پایین مشاهده می کنید که دارای کاربردهای متنوعی می باشند. در ابتدا باید یک Bot جدید را ایجاد کنیم. (البته اگر Bot دارید لزومی به انجام این کار نیست.)
برای ایجاد بات جدید می توانید روی newbot کلیک کنید یا عبارت newbot/ را تایپ کنید و اینتر بزنید. در این مرحله از شما برای بات جدید یک نام کاربری خواسته می شود. این نام را به دلخواه خودتان وارد کنید. فقط به یاد داشته باشید در آخر نام کاربری عبارت bot را درج کنید. به عنوان مثال من نام کاربری pstoreprograming_bot را انتخاب کردم که قبلاً هم از این نام کاربری استفاده نشده بود.
خوب همانطور که مشاهده می کنید توکن API ربات تلگرام من بصورت کد نشان داده شد. اگر به هر دلیلی این کد را در دسترس نداشتید یا از قبل نام کاربری برای بات خود ایجاد کرده بودید. می توانید با کد mybots/ و زدن API کد توکن خود را بردارید. پس تا این مرحله نام کاربری ربات و توکن API خود را داریم. از توکن API و نام کاربری خود مراقبت کنید چرا که می توان با این اطلاعات به ربات شما دسترسی پیدا کرد. به همین دلیل قسمت هایی از توکن API خودمان را در این بخش مخفی کرده ایم.
می توانید برای ربات خود اطلاعات دیگری را اضافه کنید به عنوان مثال در خط فرمان های setdescription/ و setuserpic/ می توان دیسکریپشن و تصویر ربات خودتان را وارد کنید تا ظاهری زیبا به ربات بدهید. این مراحل را ما برای ربات ایجاد شده انجام داده ایم که تصویر زیر نمونه ای از آن است.
در آماده سازی ربات تلگرام می توانید لیست دستورات ایجاد کنید. دستورات معمولاً با / مشخص می شوند با استفاده از فرمان setcommands می توانید دستوراتی را برای ربات تلگرامی ایجاد کنید. در تلگرام در هر بخش راهنمایی ها و پیشنهادات لازم ارائه می شود.
گام دوم: ایجاد پروژه با جاوا Maven
در گام دوم از آموزش ساخت ربات تلگرام با جاوا به سراغ ایجاد یک پروژه در جاوا می رویم. کسانی که قبلاً جاوا کار کرده اند حتماً می دانند که Maven یک ابزار مدیریت در برنامه نویسی جاوا است در Maven کتابخانه های و پلاگین های متنوعی موجود است که به برنامه نویس کمک می کند بدون درگیری با کدهای پیچیده مثلاً در شی گرایی، کار را براحتی جلو برد.
در این آموزش از IDE محبوب JetBrains IntelliJ برای برنامه نویسی استفاده کرده ایم اگر اطلاعاتی در مورد برنامه نویسی جاوا در JetBrains IntelliJ ندارید می توانید مقاله آموزش زبان برنامه نویسی جاوا (Java) در سایت فرادرس را مشاهده فرمایید. IDE خود را باز کنید و یک پروژه Maven را ایجاد کنید.
یک نام مناسب برای پروژه انتخاب کنید و Finish را بزنید. برای نمونه ما TelBotJava را انتخاب کرده ایم.
پس از ساخت پروژه در قسمت pom.xml از پروژه ایجاده شده، وابستگی های لازم را از جایگذاری کنید. وابستگی لازم برای استفاده از API نسخه 5.3 در dependency های فایل pom.xml باید جایگذاری شود تا از طریق لینک موجود در آن کتابخانه های مورد نیاز بصورت اتوماتیک دانلود شود. پس برای این کار کد زیر را در pom.xml جایگذاری کنید.
<dependency> <groupId>org.telegram</groupId> <artifactId>telegrambots</artifactId> <version>5.3.0</version> </dependency>
در کدنویسی ممکن است برخی تنظیمات هم لازم باشد تا برنامه بخوبی کار کند بهمین خاطر کل فایل pom.xml را پاک کنید و کد زیر را به آن اضافه کنید. البته نگاهی به مدل نوشتاری در این فایل داشته باشید تا در آینده در استفاده از API ها یا کتابخانه ها تجربه کافی را داشته باشید.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>telegrambot</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.telegram</groupId> <artifactId>telegrambots</artifactId> <version>5.3.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.4</version> </dependency> </dependencies> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> </project>
یعنی محتویات فایل pom.xml بایستی بصورت تصویر زیر باشد.
بر روی آیکون کوچک اشاره شده در تصویر کلیک کنید تا کلاس ها و کتابخانه های مورد نیاز دانلود شود. حالا بسراغ کدنویسی و ایجاد کلاس های لازم برویم.
در این بخش دو کلاس با نام های MainClass و BotClass ایجاد کنید و محتویات آن را بصورت کدهای زیر قرار دهید.
محتویات فایل MainClass:
public class MainClass { public static void main(String[] args) { }
محتویات فایل BotClass:
import org.telegram.telegrambots.bots.TelegramLongPollingBot; import org.telegram.telegrambots.meta.api.objects.Update; public class BotClass extends TelegramLongPollingBot { @Override public String getBotUsername() { return null; } @Override public String getBotToken() { return null; } @Override public void onUpdateReceived(Update update) { } }
در اینجا حتماً متوجه هستید که کلاس BotClass از TelegramLongPollingBot ارث بری داشته و متد های ضروری کلاس TelegramLongPollingBot در BotClass ایجاد شده است. البته اگر به IDE خودتان مسلط باشید این پیشنهادات را خود IDE در هنگام برنامه نویسی ارائه خواهد کرد.
گام سوم: اضافه کردن توکن و نام کاربری
در گام سوم از آموزش ساخت ربات تلگرام با جاوا نوبت به اضافه کردن نام کاربری و توکن مربوط به آن است. برای این کار در کلاس BotClass در داخل تابع ()getBotUserName به جای عبارت null نام کاربری Bot خود جایگزین کنید و برای جایگذاری توکن در تابع ()getBotToken به جای عبارت نقطه چین null خود را در دستور بازگشت getBotToken جایگذاری کنید. توجه داشته باشید هم توکن و هم نام کاربری در داخل کوتیشن ” ” نوشته شده باشد. مشاهده آموزش زیر نیز به شما پیشنهاد می شود.
گام چهارم: دریافت پیام از ربات
برای دریافت پیام از ربات تلگرام باید توجه کنیم هنگامی که یک کاربر پیام را به ربات ارسال می کند در ()onUpdateReceived کلاس BotClass این پیام دریافت می شود می توانید برای چاپ این پیام فرضاً از دستور زیر استفاده کنید.
System.out.println(update.getMessage().getText());
گام پنجم: ارسال پیام به ربات
برای ارسال پیام به ربات تلگرام در ابتدا یک شی از SendMessage ایجاد کنید:
SendMessage sendMessage = new SendMessage();
خوب برای تنظیمات sendMessage می توان در خاصیت setText آن چنین عمل کرد:
sendMessage.setText("Hello ") try { sendMessage.setChatId(update.getMessage().getChatId()); execute(sendMessage); } catch (TelegramApiException e) { e.printStackTrace(); }
در کد بالا همانطور که مشخص است در داخل ()setText ، می توانید پیام خود را بنویسید. و با استفاده از ()setChatID شناسه چت را تنظیم کنید و تابع ()execute پیام را برای کاربر ارسال می کند، فراموش نکنید که این کد را در بلوک try-catch بنویسید، زیرا ممکن است خطا یا مشکلی در طول ارسال پیام وجود داشته باشد. توجه داشته باشد که در داخل کد یک شرط هم به عنوان مثال نوشته شده است برای اینکه مثلاً اگر کاربر پیام salam را تایپ کند و بفرستد جواب “سلام” برای وی ارسال خواهد شد و در غیر اینصورت یک پیام با عنوان “لطفاً پیام مناسبی را وارد کنید” ارسال می شود.
پس اگر کدهای کامل شده کلاس BotClass را بخواهیم داشته باشیم بصورت زیر خواهد بود:
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; import java.util.logging.Level; import java.util.logging.Logger; public class BotClass extends TelegramLongPollingBot { public String getBotUsername() { return "......................."; } public String getBotToken() { return "......................."; } public void onUpdateReceived(Update update) { String chatID=update.getMessage().getChatId().toString(); System.out.println(update.getMessage().getText()); String command=update.getMessage().getText(); SendMessage MSG=new SendMessage(); if (command.equals("salam")) { MSG.setChatId(chatID); MSG.setText("سلام"); }else { MSG.setChatId(chatID); MSG.setText("لطفاً پیام مناسبی را وارد کنید"); } try{ execute(MSG); }catch (TelegramApiException ex){ Logger.getLogger(BotClass.class.getName()).log(Level.SEVERE,null,ex); } } }
که عبارت های نقطه چین باید با نام کاربری و توکن پر شود.
حالا باید تغییراتی هم در تابع اصلی ایجاد کنیم تا کلاس BotClass از داخل تابع اصلی ما استفاده شود. کد کامل شده فایل MainClass بصورت زیر خواهد بود.
import org.telegram.telegrambots.meta.TelegramBotsApi; import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; public class MainClass { public static void main(String[] args) { try { TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class); telegramBotsApi.registerBot(new BotClass()); } catch (TelegramApiException e) { e.printStackTrace(); } } }
اگر به کد بالا توجه کنید متوجه خواهید شد که با استفاده از کد زیر کلاس BotClass برای ثبت یک API با مشخصاتی که در آن تعریف کردیم ظاهر شده است.
telegramBotsApi.registerBot(new BotClass());
مراحل کدنویسی تمام شد. حال به سراغ امتحان کد می رویم.
گام ششم: امتحان برنامه ربات تلگرام با جاوا
پس از اطمینان از جایگذاری درست کدها برنامه خود را اجرا کنید و بگذارید در همان حالت اجرا باقی بماند چیزی شبیه به شکل زیر را در اجرای موفق برنامه ربات تلگرام با جاوا خواهید داشت.
حال به سراغ تلگرام خود بروید و ربات خود را باز کنید. و یک عبارت در آن بنویسید. طبق شکل زیر ما عبارت های مختلفی را ارسال کرده ایم و همانطور که مشخص است فقط ربات جواب salam ما را با “سلام” پاسخ داده است.
همچنین اگر به کنسول محیط برنامه نویسی خود سری بزنید خواهید دید عبارت های تایپ شده ما در تلگرام چاپ شده است. اگر یادتان باشد این کار را در کدهای بالا توضیح دادیم.
خوب، به همین سادگی آموزش ساخت ربات تلگرام با جاوا به پایان رسید.
سخن آخر در مورد آموزش ساخت ربات تلگرام با جاوا
تلگرام این امکان را برای برنامه نویسان فراهم کرده تا با زبان های برنامه نویسی مختلف با تلگرام ارتباط برقرار کنند و ربات های متنوعی برای کاربردهای مختلف ایجاد کنند. در این آموزش نشان داده شد که چگونه با زبان برنامه نویسی جاوا برای تلگرام، ربات تعریف کرد اما لازمه کار با برنامه نویسی جاوا استفاده از ابزارهای مناسب و استفاده از دانش برنامه نویسی برای ارتباط بین زبان برنامه نویسی و تلگرام است. اگر تازه کار هستید و می خواهید مطالب را با جزئیات بیشتری یاد بگیرید پیشنهاد می کنیم آموزش ساخت ربات تلگرام با جاوا را از مجموعه فرادرس تهیه و مطالعه فرمایید. برای تهیه آموزش ذکر شده می توانید وارد لینک زیر شوید:
امیدواریم مطالب فوق برای شما عزیزان مفید بوده باشد. در پایان منتظر نظرات و پیشنهادات شما عزیزان هستیم. موفق و پیروز باشید.
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.
سلام
نمی دونم چرا برام کار نمی کنه
این مطلب خیلی مفید بود. ممنون از سایت خوبتون