آموزش کار با ربات تلگرام در برنامه نویسی اندروید
سلام توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی اندروید به آموزش کار با ربات تلگرام در برنامه نویسی اندروید می پردازیم در واقع صفر تا صد کار با ربات تلگرام (Telegram Bot) را در این پست ما بررسی می کنیم شاید سوال های مختلفی در مورد بات تلگرام داشته باشید در واقع تمامی امکاناتی رو که یک ربات می تواند داشته باشید را ما نحوه پیاده سازیش رو با استفاده از کد در اندروید میگیم به طور مثال ارسال عکس و اطلاعات به کاربران یا حتی یک کانال خاص خب بهتر است شروع کنیم و زیاد طفره نریم در ادامه برخی از بخش ها که نحوه کار باهاشون رو بررسی می کنیم را براتون قرار میدیم. هزارتا
محتویات
- آموزش Authorizing ربات تلگرام یا Login به ربات تلگرام در برنامه نویسی اندروید
- آموزش ارسال Text به کاربر یا کانال در برنامه نویسی اندروید
- آموزش ارسال Html , Markdown به کاربر یا کانال تلگرام در برنامه نویسی اندروید
- آموزش ارسال Markdown به کاربر یا کانال تلگرام در برنامه نویسی اندروید
- آموزش ارسال عکس (Photo) به کاربر یا کانال
- آموزش ارسال ویدیو (Video) به کاربر یا کانال
- آموزش ارسال (Audio) صدا به کانال یا کاربر در اندروید
- آموزش ارسال Document به کانال یا کاربر در اندروید
- آموزش ارسال موقعیت (Location) به کانال یا کاربر در تلگرام
فکر کنم آموزش کاملی باشد ?
خب ابتدای کار وارد فایل Build.gradle شده و در بخش dependencies خط زیر را قرار دهید.
1 | compile 'com.ajts.library.telegrambot:telegrambotlibrary:1.0.0' |
پروژه را sync کنید.
در متد Oncreate اکتیویتی ابتدا خط زیر را قرار دهید.
1 | Telegram telegram = new Telegram("<bot-token>"); |
به جای bot-token باید Token مربوط به ربات خودتان را قرار دهید که از @BotFather باید بگریدش دیگه ما توضیح نمیدیم Token چیه و اصلا BotFather برای چیه توی اینترنت ماشالله 90 هزارتا سایت توضیح دادن
خب برای بخش Authorizing یا همان احراز هویت ا کد زیر استفاده کنید تا بفهمید به درستی وصل شدید یا خیر
1 2 3 4 5 6 7 8 9 | telegram.getMe(new TelegramCallback<GetMe>() { @Override public void onResponse(Call call, final GetMe getMe) { Log.v("response.body()", getMe.isOk() + ""); } @Override public void onFailure(Call call, Exception e) { } }); |
در کل کدهای پایین که قرار میدهیم نوشته شده است Channel-Name or Chat-ID شما باید یا آیدی کانالی رو که می خواهید بهش اطلاعات ارسال کنید قرار دهید یا اینکه آیدی کاربر رو قرار دهید اگر بخواهید مثلا آیدی خودتان رو به دست بیارید به ربات @userinfobot برید نوشته آیدی شما رو قبل از آن هم حتما باید ربات رو برای کاربر مورد نظر استارت کرده باشید یا در کانال که می خواهید اطلاعات ارسال کنید ادمین کرده باشید.
خب برای ارسال متن می توانید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 | telegram.sendMessage("<Channel-Name or Chat-ID>", "TelegramBotLibrary", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Log.v("response.body()", response.isOk() + ""); } @Override public void onFailure(Call call, Exception e) { } }); |
ارسال Html و Markdown با استفاده از کد زیر
1 2 3 4 5 6 7 8 9 10 11 12 | telegram.sendMessage("<Channel-Name or Chat-ID>", "<i>TelegramBotLibrary</i>", Telegram.ParseMode.HTML, new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
فقط ارسال Markdown با استفاده از کد زیر
1 2 3 4 5 6 7 8 9 10 11 12 | telegram.sendMessage("<Channel-Name or Chat-ID>", "*TelegramBotLibrary*", Telegram.ParseMode.Markdown, new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
ارسال عکس با استفاده از کد زیر فقط اینکه باید مسیر عکس را با آموزش های قبلی به دست بیارید مثلا با استفاده از Picker هایی که قرار دادیم باید مسیر عکس را به دست بیارید.
1 2 3 4 5 6 7 8 9 10 11 12 13 | telegram.sendPhoto("<Channel-Name or Chat-ID>", TelegramMediaType.Image.png, new File(imagePickedPath), "telegram photo", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
برای ارسال ویدیو هم همینطور باید آدرس فیلم رو از SD به دست بیارید
1 2 3 4 5 6 7 8 9 10 11 12 13 | telegram.sendVideo("<Channel-Name or Chat-ID>", TelegramMediaType.Video.mp4, new File(videoPickedPath), "telegram video", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
برای ارسال صدا یا Audio مثل زیر عمل کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 | telegram.sendAudio("<Channel-Name or Chat-ID>", TelegramMediaType.Audio.mp3, new File(audioPickedPath), "telegram audio", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
و در نهایت برای ارسال Document مثل زیر عمل کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 | telegram.sendDocument("<Channel-Name or Chat-ID>", TelegramMediaType.Document.file, new File(documentPickedPath), "telegram document", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
برای ارسال Location مثل زیر عمل کنید باید lat و long بفرستید.
1 2 3 4 5 6 7 8 9 10 11 12 | telegram.sendLocation("<Channel-Name or Chat-ID>", "<Latitude>", "<Longitude>", new TelegramCallback<Message>() { @Override public void onResponse(Call call, Message response) { Toast.makeText(MainActivity.this, response.isOk() + "", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call call, Exception e) { } }); |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام، واقعا خوب بود، خسته نباشید
سلام و درود
خواهش می کنم موفق باشید.
سلام اینو چطور میشه برد روی سرور
و اینکه چطور ایدی کاربر رو موقع استارت کردن میشه دریافت کردن که هی نخوایم دستی ایدی وارد کنیم
سلام و درود
شما کافیه یه دیتابیس سمت سرور داشته باشید که آیدی ها رو ذخیره کنید بعدش هر وقت خواستید دوباره retrieve کنید و توی برنامه استفاده کنید.
موفق باشید.
سلام من هر کاری میکنم متن ارسال نمیشه میشه راهنمایی کنید که چجوری متن و ارسال کنیم
سلام وقتی این کتابخونه رو نصب میکنم اکتیویتی رو نمیناسی مینویسه default activity not found وقتی هم به طور دستی اکتیویتی بیشفرض رو وارد میکنم مینویسه The activity ‘MainActivity’ is not declared in AndroidManifest.xml
درحالی که من تعریف کردم در مانیفست
سلام الان با این وضعیت فیلت*رینگ چطور میتونیم ازش استفاده کنیم.الان این خطا رو میده
(failed to connect to api.telegram.org/10.10.34.35 (port 443)
باید وب هوک فعال باشه یا وب هوک رو حذف کنیم قبل از استفاده از این روش؟
لطفاً بفرمایید چگونه باید کد ها رو ایمپورت کنیم ؟
چون کد هایی که در این صفحه هستند وقتی در فایل ماین اکتیویتی وارد میکنیم ارور میده
دستور ایمپورت چیه ؟
سلام و درود
ALT+Enter
با سلام این روش اصلا کار نمیکنه
هرجوری امتحان کردم کار نکرده
اگه میگید نه لطفا ثابت کنید که کار میکنه
سلام
من می خوام یکسری اطلاعات رو در یک کانال سرچ کنم و اونایی که مد نظرم هست اطلاعاتشون
(if) کپی بشه در اکسل این کار شدنی هست؟