Forwarded from | Erfan's Notes |
اگه توسعهدهنده Mini App های تلگرام هستید، احتمالا با مشکلات و موانع این کار هم آشنا هستید. ابزار جدیدی که نوشتم با عنوان TMA Studio با ارائه یک محیط Mock شبیهسازی شده فرایند توسعه مینیاپ رو سادهتر میکنه
اوپنسورس هم هست و میتونید از طریق لینک زیر در گیتهاب مشاهده کنید
⚙️ Github
🌐 Website
پ.ن: سعی میکنم در اولین فرصتی که تونستم، یک دوره توسعه مینی اپ تلگرام ضبط کنم
اوپنسورس هم هست و میتونید از طریق لینک زیر در گیتهاب مشاهده کنید
⚙️ Github
🌐 Website
پ.ن: سعی میکنم در اولین فرصتی که تونستم، یک دوره توسعه مینی اپ تلگرام ضبط کنم
🔥8❤5
Forwarded from | Erfan's Notes | via @DevelopixBot
⭕️ دوره آموزش برنامهنویسی مینی اپ تلگرام
💠 در این دوره به آموزش برنامهنویسی مینی اپ تلگرام میپردازیم، از مباحث پایه و عمومی شروع میکنیم و مفاهیم رو یاد میگیریم.
💠 در این دوره به آموزش برنامهنویسی مینی اپ تلگرام میپردازیم، از مباحث پایه و عمومی شروع میکنیم و مفاهیم رو یاد میگیریم.
Forwarded from Developix Support
🦾 زور بازوت رو نشون بده و جایزه ببر!
💰 یه مسابقه ۱۰۰ میلیون تومنی برای ساخت بازو (بات) و مینیاپ در اپلیکیشن بله
🎯 از استعدادت پول در بیار!
❓چطوری؟
بله با مسابقهٔ «زور بازوت رو نشون بده!» یک فرصت عالی برای مهندسین نرمافزار، وب دولوپرها، صاحبان سایتها و اپلیکیشنها و تیمهای محصول فراهم کرده که پاسخگوی این دغدغههاست.
🎁 یه مسابقه با ۱۰۰ میلیون تومن جایزهٔ نقدی و ۱ میلیارد تومن اعتبار تبلیغات منتظرته! ♨️
📎همین الان در مسابقه ثبتنام کن! ➡️
💬 کانال اخبار بازو دراپلیکیشن بله
کانال اطلاعرسانی بله | @BaleMessenger
💰 یه مسابقه ۱۰۰ میلیون تومنی برای ساخت بازو (بات) و مینیاپ در اپلیکیشن بله
🎯 از استعدادت پول در بیار!
❓چطوری؟
بله با مسابقهٔ «زور بازوت رو نشون بده!» یک فرصت عالی برای مهندسین نرمافزار، وب دولوپرها، صاحبان سایتها و اپلیکیشنها و تیمهای محصول فراهم کرده که پاسخگوی این دغدغههاست.
🎁 یه مسابقه با ۱۰۰ میلیون تومن جایزهٔ نقدی و ۱ میلیارد تومن اعتبار تبلیغات منتظرته! ♨️
📎همین الان در مسابقه ثبتنام کن! ➡️
💬 کانال اخبار بازو دراپلیکیشن بله
کانال اطلاعرسانی بله | @BaleMessenger
👎7
تیکه کد عضویت اجباری برای رباتهای تلگرام
برای همه حالت های ابدیت نوشته شده
برای حالت عادی میتونید به صورت :
استفاده کنید ، و در حالت اینلاین مود از شرط
اگه کاربر عضو شده باشد ، true برمیگردونه در غیر اینصورت پیام عضویت اجباری رو میفرسته و نیازی نیست شرط else رو بنویسید
🔖 #TelegramBot, #ربات, #تلگرام, #PHP, #BotAPI
👤 ❉্᭄͜͡𝓐𝓵𝓲𝓻𝓮𝔃𝓪❉্᭄͜͡
💎 Channel: @DevelopixRobot
// Join Channel
$bot_channel_ids = [-1002084850763];
function check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId = null) {
global $message_id;
$join_Status = ['member', 'creator', 'administrator'];
foreach ($bot_channel_ids as $bot_channel_id) {
$check_join = bot('getChatMember', [
'chat_id' => $bot_channel_id,
'user_id' => $from_id
])->result->status;
if (!in_array($check_join, $join_Status)) {
$invite_link = bot('createChatInviteLink', [
'chat_id' => $bot_channel_id
])->result->invite_link;
$join_buttons = [[
['text' => " عضویت در کانال ", 'url' => $invite_link]
]];
$join_button = json_encode([
'inline_keyboard' => $join_buttons
]);
if ($inlineQueryId != null) {
bot('answerInlineQuery', [
'inline_query_id' => $inlineQueryId,
'cache_time' => 0,
'results' => json_encode([[
'type' => 'article',
'id' => rand(1, 10000000),
'title' => " شما عضو کانال نیستید ",
'input_message_content' => [
'message_text' => "🫰 برای استفاده از ربات، ابتدا در کانال ما عضو شوید ",
'parse_mode' => 'Markdown'
],
'reply_markup' => json_decode($join_button),
'description' => " لطفاً ابتدا وارد کانال شوید ",
'thumbnail_url' => "https://bot.turk-service.ir/iauTools/telegram.png",
]]),
]);
} else {
bot('sendMessage', [
'chat_id' => $chat_id,
'reply_to_message_id' => $message_id,
'parse_mode' => 'Markdown',
'text' => "⚠️ کاربر گرامی [$first_name](tg://user?id=$from_id) \nUserID : $from_id\nبرای استفاده از ربات ابتدا عضو چنل ما شوید ",
'reply_markup' => $join_button,
]);
}
return false;
}
}
return true;
}
if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids)) {}
if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId)) {}
برای همه حالت های ابدیت نوشته شده
برای حالت عادی میتونید به صورت :
if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids)) {}استفاده کنید ، و در حالت اینلاین مود از شرط
if (check_join($from_id, $first_name, $chat_id, $bot_channel_ids, $inlineQueryId)){}اگه کاربر عضو شده باشد ، true برمیگردونه در غیر اینصورت پیام عضویت اجباری رو میفرسته و نیازی نیست شرط else رو بنویسید
🔖 #TelegramBot, #ربات, #تلگرام, #PHP, #BotAPI
👤 ❉্᭄͜͡𝓐𝓵𝓲𝓻𝓮𝔃𝓪❉্᭄͜͡
💎 Channel: @DevelopixRobot
👍6
🤖 دریافت دادهها (update) از تلگرام: Webhooks vs Long Polling
🗂 رباتهای تلگرامی به طور کلی به دو دسته تقسیم میشن:
◀️ رباتهایی که نیازی به دریافت آپدیت ندارند.
◀️ رباتهایی که نیازمند دریافت از تلگرام هستند.
📱 برای هر دو دسته میشه مثالهایی ارائه داد:
◀️ تصور کنید یک ربات طراحی شده که هر شب در ساعت مشخصی، پیام خاصی رو به کاربرانی ارسال میکنه. این ربات نیازی به دریافت آپدیت از تلگرام نداره، چون عملکرد اون مستقل از تعامل با کاربرانه.
◀️ اما حالا رباتی رو تصور کنید که منتظره. منتظر کاربری که به عنوان مثال دستور معروف /start رو براش ارسال کنه تا به اون خوشآمد بگه. این ربات نیازمند دریافت آپدیت هست، چون عملکرد اون مبتنی بر واکنش کاربران میشه.
💡 به این واکنشها یا دستورات کاربران، آپدیت (update) میگیم؛ یعنی همون "واکنش کاربر".
🤔 حالا یک سوال مهم مطرح میشه، رباتهای تلگرامی از چه راههایی میتونند به این آپدیتها دسترسی پیدا کنند؟
🗂 دو روش اصلی برای این کار وجود داره:
◀️ روش Long Polling
◀️ روش استفاده از Webhook
ℹ️ در این پست، قصد داریم بررسی کنیم که کدوم یک از این دو روش برای شما میتونه مناسبتر باشه. اما قبل از مقایسه، لازمه هر دو روش رو به خوبی درک کنیم.
📶 روش اول: Long Polling
ℹ️ در این روش، فرض میکنیم تلگرام تمامی آپدیتهای مربوط به ربات ما رو جایی نگه میداره تا ربات بتونه اونها رو دریافت کنه و ازش بگیره. حالا ربات ما به طور مداوم از تلگرام درخواست میکنه که "آیا آپدیت جدیدی برای من ثبت شده یا نه؟"
🎙 اگر آپدیت جدیدی وجود داشته باشه، تلگرام اون رو در اختیار ربات قرار میده و ربات اون رو پردازش میکنه. و باز برای آپدیت های بعدی درخواست میده.
🎙 و اگر آپدیتی وجود نداشته باشه، ربات دوباره همون درخواست رو ارسال میکند و این چرخه در هر صورت ادامه پیدا میکند.
💡 به عبارت دیگه، در روش Long Polling، ربات به صورت ۲۴ ساعته و مداوم به تلگرام درخواست میده تا آپدیتهای جدید رو دریافت کنه. این عمل میتونه از طریق Bot API و متد getUpdates انجام بشه یا مستقیماً از طریق تعامل با MTProto و متد getDifference صورت بگیره.
⬇️ روش دوم: استفاده از Webhook
ℹ️ در این روش، دیگه نیازی نیست که ربات به طور مداوم از تلگرام درخواست آپدیت کنه. تلگرام خودش آپدیتها رو برای ربات ارسال میکنه. برای این کار، ما نیازمند این هستیم یک وبسرور راهاندازی کنیم و webhook provider رو جوری تنظیم کنیم تا آپدیتها رو برای این وبسرور ارسال کنه. این تنظیم در BotAPI از طریق متد setWebhook انجام میشه.
💡 به بیان سادهتر، در روش استفاده از Webhook، تلگرام وظیفه ارسال آپدیتها رو به عهده میگیره و ربات فقط باید منتظر دریافت آپدیتها باشه.
🍔 مقایسه Long Polling و Webhook در BotAPI
ℹ️ سهولت استفاده
◀️ اگر دنبال سادهترین روش باشید، بدون شک Long Polling انتخاب مناسبیتری میتونه باشه. تنها کاری که باید انجام بشه، ارسال درخواست به تلگرام برای دریافت آپدیتها رو در قالب یک آرایهست. این روش حتی روی دستگاه شخصی خودتون هم قابل پیادهسازی و اجراست و نیازی به داشتن یک hosting عمومی https ندارید.
ℹ️ سرعت و عملکرد
◀️ اگر سرعت برای شما اهمیت داره، Webhook گزینه بهتری میتونه باشه و همونطور که توضیح داده شد، در این روش آپدیتها توسط تلگرام به ربات ارسال میشن. این ویژگی باعث میشه استفاده از Webhook برای رباتهای بزرگ، ربات های پرترافیک و ربات هایی که آپدیت های زیادی دریافت میکنند مناسبتر باشه.
💡 در نهایت، هر دو روش کاربردی هستند و بسته به پروژه شما میتونند به خوبی عمل کنند.
✍️ *ژنرال*
💎 Channel: @DevelopixRobot
💎 Channel: @DevelopixRobot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3
💎 Channel: @DevelopixRobot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🔥1
LaraGram یک فریمورک توسعهپذیر، منعطف و مدرن به زبان PHP برای ساخت رباتهای تلگرامه که با الهام از ساختار لاراول طراحی شده.
اگر با لاراول آشنایی دارید، کار با LaraGram براتون راحت، لذتبخش و قابل پیشبینی خواهد بود — و حتی اگه آشنایی ندارید، ساختار منظمش خیلی زود براتون جا میافته.
LaraGram امکانات زیادی درون خودش داره که میتونید سختترین رباتها رو با چند خط کد پیادهسازی کنید، اگر قابلیتی رو هم نداشته باشه میتونید به عنوان پکیج جانبی بهش اضافه کنید یا حتی برای اون پکیج توسعه بدید.
به عنوان مثال، LaraGram مجهز به یک سیستم Update Listener پیشرفته هست که به شما امکاناتی مانند گروهبندی لیسنرها، نامدهی به هر لیسنر، اعمال محدودیت و Middleware بر روی لیسنر، پردازش متن و ورودیها، و... رو میده.
همچنین نسخه بازنویسی شده Eloquent ORM رو در خودش جا داده با پشتیبانی از ۵ دیتابیس مختلف، همراه با تعریف روابط، Migrations، Seeders و Factoryها.
سایر قابلیت های کلیدی اون:
🔐 سیستم کنترل مجوز با قابلیت تعریف Gate و Policy برای مدیریت دقیق سطح دسترسی کاربران به منابع مختلف.
💻 Commander System برای ساخت و اجرای راحت commandها، مدیریت سادهتر پروژه، و زمانبندی اجرای وظایف (Scheduled Tasks).
📨 Queue و Job System برای ساخت صف و اجرای کارها در پسزمینه با زمانبندی دلخواه.
🧰 رابط Redis با امکانات لازم برای توسعههای وابسته به کش، صف و پیامرسانی آنی.
🧠 سیستم کشینگ با پشتیبانی از ۷ درایور مختلف برای ذخیرهسازی دادههای موقتی، بههمراه پیادهسازی Step Manager بر همین بستر.
🔁 کالکشنها برای کار سادهتر و منعطفتر با دادههای Iterable، مشابه کالکشنهای Laravel.
⚙️ Concurrency داخلی با امکان پردازش همزمان چند درخواست در پسزمینه بدون پیچیدگی اضافه.
🔒 ابزارهای امنیتی با پشتیبانی از سیستمهای رمزنگاری (Crypt) و هشینگ (Hash).
📢 Event Dispatcher برای تعریف و مدیریت رویدادها و واکنش به آنها.
🎛 کیبورد بیلدر توسعهیافته با استفاده ساده و انعطاف پذیری بالا.
🧩 موتور قالبسازی پیشرفته الهامگرفته از Blade برای ساخت پیامها بهصورت پویا و قابل نگهداری.
🌍 سیستم چندزبانه (Translation) برای ساخت رباتهایی با پشتیبانی از زبانهای مختلف.
✅ سیستم اعتبارسنجی با قوانین متنوع و امکان تعریف Ruleهای سفارشی.
🤖 پشتیبانی از چند ربات همزمان و امکان تعریف چند کانکشن و مدیریت آنها بهصورت مستقل.
یک مثال ساده برای ایجاد یک کامند بن با user_id به مدت 7 روز، با کنترل دسترسی و شرط ریپلای نشدن کامند:
برخی از ویژگیها با افزونهها و پکیجهای جانبی به LaraGram اضافه میشوند، به عنوان مثال:
⚡️ LaraGram Surge
پکیجی برای اجرای سریعتر رباتها با پشتیبانی از Swoole و OpenSwoole
🔧 LaraGram Installer
برای نصب و راهاندازی سریع و ساده پروژههای LaraGram
🛢 LaraGram MongoDB
درایور پایگاهداده MongoDB برای Eloquent ORM
📚 مستندات رسمی LaraGram نیز از طریق لینک زیر در دسترس است:
🔗 laraxgram.github.io
💬 گروه پرسش و پاسخ:
🔹 @LaraGramChat
📌 پروژه در گیتهاب:
♦️ LaraGram
🔖 #TelegramBot, #ربات, #تلگرام
👤 AmirHossein
💎 Channel: @DevelopixRobot
اگر با لاراول آشنایی دارید، کار با LaraGram براتون راحت، لذتبخش و قابل پیشبینی خواهد بود — و حتی اگه آشنایی ندارید، ساختار منظمش خیلی زود براتون جا میافته.
LaraGram امکانات زیادی درون خودش داره که میتونید سختترین رباتها رو با چند خط کد پیادهسازی کنید، اگر قابلیتی رو هم نداشته باشه میتونید به عنوان پکیج جانبی بهش اضافه کنید یا حتی برای اون پکیج توسعه بدید.
به عنوان مثال، LaraGram مجهز به یک سیستم Update Listener پیشرفته هست که به شما امکاناتی مانند گروهبندی لیسنرها، نامدهی به هر لیسنر، اعمال محدودیت و Middleware بر روی لیسنر، پردازش متن و ورودیها، و... رو میده.
همچنین نسخه بازنویسی شده Eloquent ORM رو در خودش جا داده با پشتیبانی از ۵ دیتابیس مختلف، همراه با تعریف روابط، Migrations، Seeders و Factoryها.
سایر قابلیت های کلیدی اون:
🔐 سیستم کنترل مجوز با قابلیت تعریف Gate و Policy برای مدیریت دقیق سطح دسترسی کاربران به منابع مختلف.
💻 Commander System برای ساخت و اجرای راحت commandها، مدیریت سادهتر پروژه، و زمانبندی اجرای وظایف (Scheduled Tasks).
📨 Queue و Job System برای ساخت صف و اجرای کارها در پسزمینه با زمانبندی دلخواه.
🧰 رابط Redis با امکانات لازم برای توسعههای وابسته به کش، صف و پیامرسانی آنی.
🧠 سیستم کشینگ با پشتیبانی از ۷ درایور مختلف برای ذخیرهسازی دادههای موقتی، بههمراه پیادهسازی Step Manager بر همین بستر.
🔁 کالکشنها برای کار سادهتر و منعطفتر با دادههای Iterable، مشابه کالکشنهای Laravel.
⚙️ Concurrency داخلی با امکان پردازش همزمان چند درخواست در پسزمینه بدون پیچیدگی اضافه.
🔒 ابزارهای امنیتی با پشتیبانی از سیستمهای رمزنگاری (Crypt) و هشینگ (Hash).
📢 Event Dispatcher برای تعریف و مدیریت رویدادها و واکنش به آنها.
🎛 کیبورد بیلدر توسعهیافته با استفاده ساده و انعطاف پذیری بالا.
🧩 موتور قالبسازی پیشرفته الهامگرفته از Blade برای ساخت پیامها بهصورت پویا و قابل نگهداری.
🌍 سیستم چندزبانه (Translation) برای ساخت رباتهایی با پشتیبانی از زبانهای مختلف.
✅ سیستم اعتبارسنجی با قوانین متنوع و امکان تعریف Ruleهای سفارشی.
🤖 پشتیبانی از چند ربات همزمان و امکان تعریف چند کانکشن و مدیریت آنها بهصورت مستقل.
یک مثال ساده برای ایجاد یک کامند بن با user_id به مدت 7 روز، با کنترل دسترسی و شرط ریپلای نشدن کامند:
Bot::onCommand("ban {id}", function (Request $request, $id) {
$request->banChatMember(
chat_id: chat()->id,
user_id: $id,
until_date: now()->addDays(7)->timestamp
);
})->can('administrator')->hasNotReply();برخی از ویژگیها با افزونهها و پکیجهای جانبی به LaraGram اضافه میشوند، به عنوان مثال:
⚡️ LaraGram Surge
پکیجی برای اجرای سریعتر رباتها با پشتیبانی از Swoole و OpenSwoole
🔧 LaraGram Installer
برای نصب و راهاندازی سریع و ساده پروژههای LaraGram
🛢 LaraGram MongoDB
درایور پایگاهداده MongoDB برای Eloquent ORM
📚 مستندات رسمی LaraGram نیز از طریق لینک زیر در دسترس است:
🔗 laraxgram.github.io
💬 گروه پرسش و پاسخ:
🔹 @LaraGramChat
📌 پروژه در گیتهاب:
♦️ LaraGram
🔖 #TelegramBot, #ربات, #تلگرام
👤 AmirHossein
💎 Channel: @DevelopixRobot
🔥14❤2
الگوی Command برای هندلرهای ربات تلگرام — سازماندهی دستورات
الگوی Command یکی از سادهترین و کاربردیترین راهها برای جداسازی منطق هر دستور در ربات تلگرام است. به جای نوشتن یک تابع بزرگ که همه دستورات را هندل میکند، برای هر دستور یک کلاس یا شیء مجزا تعریف میکنیم که تنها مسئول اجرای آن دستور باشد. این کار خوانایی، تستپذیری و گسترشپذیری پروژه را بهطور چشمگیر بالا میبرد.
مثال ساده در پایتون برای درک بهتر:
چند نکته عملی:
- Single Responsibility: هر کلاس فقط یک کار انجام میدهد (SRP از اصول SOLID).
- تستپذیری: میتوان هر Command را جداگانه unit-test کرد بدون نیاز به بوتاسترپ کل بات.
- گسترشپذیری: اضافه کردن دستور جدید فقط اضافه کردن یک کلاس و ثبت آن در
- Middleware: اگر نیاز به لاگ یا اعتبارسنجی باشد، میتوان لایهای بین
الگوی Command مخصوصاً وقتی تعداد دستورات زیاد است یا هر دستور منطق پیچیدهای دارد، مزیت دارد. با این ساختار نگهداری و توسعه رباتهای تلگرام سادهتر و مرتبتر خواهد شد.
🔖 #TelegramBot #ربات #تلگرام #design_patterns #command_pattern #telegram_bot #python #clean_code
👤 Developix
💎 Channel: @DevelopixRobot
الگوی Command یکی از سادهترین و کاربردیترین راهها برای جداسازی منطق هر دستور در ربات تلگرام است. به جای نوشتن یک تابع بزرگ که همه دستورات را هندل میکند، برای هر دستور یک کلاس یا شیء مجزا تعریف میکنیم که تنها مسئول اجرای آن دستور باشد. این کار خوانایی، تستپذیری و گسترشپذیری پروژه را بهطور چشمگیر بالا میبرد.
مثال ساده در پایتون برای درک بهتر:
class Command:
def execute(self, update, context):
raise NotImplementedError
class StartCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="سلام! خوش آمدید.")
class HelpCommand(Command):
def execute(self, update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="لیست دستورات: /start, /help")
router = {
'/start': StartCommand(),
'/help': HelpCommand(),
}
def handle_update(update, context):
text = update.message.text.split()[0]
cmd = router.get(text)
if cmd:
cmd.execute(update, context)
چند نکته عملی:
- Single Responsibility: هر کلاس فقط یک کار انجام میدهد (SRP از اصول SOLID).
- تستپذیری: میتوان هر Command را جداگانه unit-test کرد بدون نیاز به بوتاسترپ کل بات.
- گسترشپذیری: اضافه کردن دستور جدید فقط اضافه کردن یک کلاس و ثبت آن در
router است.- Middleware: اگر نیاز به لاگ یا اعتبارسنجی باشد، میتوان لایهای بین
handle_update و اجرای Command قرار داد یا یک Decorator برای Commandها نوشت.الگوی Command مخصوصاً وقتی تعداد دستورات زیاد است یا هر دستور منطق پیچیدهای دارد، مزیت دارد. با این ساختار نگهداری و توسعه رباتهای تلگرام سادهتر و مرتبتر خواهد شد.
🔖 #TelegramBot #ربات #تلگرام #design_patterns #command_pattern #telegram_bot #python #clean_code
👤 Developix
💎 Channel: @DevelopixRobot
👍7👎1
python-telegram-bot — کتابخانهٔ محبوب و فعال برای ساخت رباتهای Telegram با Python ✅
این کتابخانه رابطی ساده و مدرن روی Bot API فراهم میکند: مدیریت هندلرها، کیبوردهای اینلاین، وبهوکها و پردازش آسان آپدیتها. مناسب برای پروژههای کوچک تا پیچیده که میخواهند سریع توسعه پیدا کنند.
✅ ویژگیها و مزایا:
- هندلینگ async/await و Application-based API
- پشتیبانی از inline keyboards و callback queries
- ابزارهای کاربردی برای وبهوک و polling
- مستندات کامل و اکوسیستم گسترده
نکته: برای باتهای مقیاسپذیر از وبهوک + reverse proxy استفاده کنید، و توکن را در متغیر محیطی نگه دارید 🔒
مراجع رسمی: Docs | GitHub
امتحانش کنید و بازخوردتان را به اشتراک بگذارید 🚀
🔖 #TelegramBot #ربات #تلگرام #python #telegram #bot #python_telegram_bot
👤 Developix
💎 Channel: @DevelopixRobot
این کتابخانه رابطی ساده و مدرن روی Bot API فراهم میکند: مدیریت هندلرها، کیبوردهای اینلاین، وبهوکها و پردازش آسان آپدیتها. مناسب برای پروژههای کوچک تا پیچیده که میخواهند سریع توسعه پیدا کنند.
✅ ویژگیها و مزایا:
- هندلینگ async/await و Application-based API
- پشتیبانی از inline keyboards و callback queries
- ابزارهای کاربردی برای وبهوک و polling
- مستندات کامل و اکوسیستم گسترده
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("سلام از بات شما!")
app = ApplicationBuilder().token("YOUR_TOKEN").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
نکته: برای باتهای مقیاسپذیر از وبهوک + reverse proxy استفاده کنید، و توکن را در متغیر محیطی نگه دارید 🔒
مراجع رسمی: Docs | GitHub
امتحانش کنید و بازخوردتان را به اشتراک بگذارید 🚀
🔖 #TelegramBot #ربات #تلگرام #python #telegram #bot #python_telegram_bot
👤 Developix
💎 Channel: @DevelopixRobot
❤1👍1
🔹 وقتی ربات شروع میکند رشد کردن، getUpdates (long polling) کمکم دردسرساز میشود: صف طولانی، delay و فشار روی سرور.
یک ارتقا ساده و حرفهای اینجاست: استفاده از Webhook ✅
ایدهٔ اصلی 🧠
بهجای اینکه سرور هر چند ثانیه برود سراغ Telegram و آپدیتها را بگیرد، خود Telegram هر آپدیت را مستقیم با یک HTTP POST به آدرس شما میفرستد. این یعنی:
• سرعت بیشتر در پاسخگویی ⏱️
• مصرف کمتر CPU و network روی سرور 🌱
• مقیاسپذیری بهتر برای رباتهای شلوغ 📈
نمونه پیادهسازی با python-telegram-bot (وبهوک ساده روی Flask)
چند نکتهٔ عملی ⚙️
• حتماً از HTTPS با گواهی معتبر استفاده شود (LetsEncrypt کافی است).
• یک endpoint تمیز مثل
• لاگ خطاها و زمان پاسخ را حتماً مانیتور کن؛ timeout پیشفرض در Webhook محدود است و handlerهای سنگین را بهتر است آسنکرون یا در صف جدا (queue) پردازش کنی.
📚 مستند رسمی برای جزئیات بیشتر:
Telegram Bot API – setWebhook
این تغییر کوچک معمولاً بزرگترین جهش کیفیت در رباتهایی است که از مرحلهٔ اولیه عبور کردهاند و جدیتر استفاده میشوند 🚀
🔖 #TelegramBot #ربات #تلگرام #telegram_bot #webhook #python #performance #scaling
👤 Developix
💎 Channel: @DevelopixRobot
یک ارتقا ساده و حرفهای اینجاست: استفاده از Webhook ✅
ایدهٔ اصلی 🧠
بهجای اینکه سرور هر چند ثانیه برود سراغ Telegram و آپدیتها را بگیرد، خود Telegram هر آپدیت را مستقیم با یک HTTP POST به آدرس شما میفرستد. این یعنی:
• سرعت بیشتر در پاسخگویی ⏱️
• مصرف کمتر CPU و network روی سرور 🌱
• مقیاسپذیری بهتر برای رباتهای شلوغ 📈
نمونه پیادهسازی با python-telegram-bot (وبهوک ساده روی Flask)
from flask import Flask, request
from telegram import Update
from telegram.ext import Application, CommandHandler
TOKEN = "YOUR_BOT_TOKEN"
app = Flask(__name__)
app_telegram = Application.builder().token(TOKEN).build()
async def start(update: Update, context):
await update.message.reply_text("سلام! وبهوک فعاله ✅")
app_telegram.add_handler(CommandHandler("start", start))
@app.post("/webhook")
async def webhook():
data = request.get_json(force=True)
update = Update.de_json(data, app_telegram.bot)
await app_telegram.process_update(update)
return "ok"
if __name__ == "__main__":
import asyncio
from telegram import Bot
bot = Bot(TOKEN)
url = "https://example.com/webhook" # آدرس HTTPS معتبر
asyncio.run(bot.set_webhook(url=url))
app.run(port=8443)
چند نکتهٔ عملی ⚙️
• حتماً از HTTPS با گواهی معتبر استفاده شود (LetsEncrypt کافی است).
• یک endpoint تمیز مثل
/webhook بساز تا فقط Telegram به آن POST بزند.• لاگ خطاها و زمان پاسخ را حتماً مانیتور کن؛ timeout پیشفرض در Webhook محدود است و handlerهای سنگین را بهتر است آسنکرون یا در صف جدا (queue) پردازش کنی.
📚 مستند رسمی برای جزئیات بیشتر:
Telegram Bot API – setWebhook
این تغییر کوچک معمولاً بزرگترین جهش کیفیت در رباتهایی است که از مرحلهٔ اولیه عبور کردهاند و جدیتر استفاده میشوند 🚀
🔖 #TelegramBot #ربات #تلگرام #telegram_bot #webhook #python #performance #scaling
👤 Developix
💎 Channel: @DevelopixRobot
👍5❤1
کتابخونه python-telegram-bot یکی از محبوبترین ابزارها برای ساخت ربات تلگرام با Python هست؛ ساده، منعطف و پر از Featureهای آماده برای کارهای روزمره رباتنویسی 🧩
با این کتابخونه میشه خیلی سریع:
• پیامها و Commandها رو هندل کرد
• InlineKeyboard ساخت
• روی Webhook یا Long Polling کار کرد
• با Context و Middlewareها منطق پیچیدهتر پیاده کرد
نصب:
نمونه ربات ساده (Echo) 👇
برای رباتهای واقعی (مانیتورینگ، پنل ادمین، Botهای فروشگاهی) هم بهخوبی جواب میده و روی نسخههای جدید Bot API همیشه آپدیت میمونه 🔧
Docs و سورس:
📚 Documentations
💻 GitHub
امتحانش کن، روی یه پروژه کوچک تست کن و کمکم منطقهای پیچیدهتر رو اضافه کن 🚀
🔖 #TelegramBot #ربات #تلگرام #python_telegram_bot #Telegram_Bot #Python #ربات_تلگرام #Webhook #Inline_Keyboard
👤 Developix
💎 Channel: @DevelopixRobot
با این کتابخونه میشه خیلی سریع:
• پیامها و Commandها رو هندل کرد
• InlineKeyboard ساخت
• روی Webhook یا Long Polling کار کرد
• با Context و Middlewareها منطق پیچیدهتر پیاده کرد
نصب:
pip install python-telegram-bot --upgrade
نمونه ربات ساده (Echo) 👇
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters
TOKEN = "YOUR_BOT_TOKEN"
async def start(update: Update, context):
await update.message.reply_text("سلام، یه پیام بفرست 👋")
async def echo(update: Update, context):
await update.message.reply_text(update.message.text)
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()
برای رباتهای واقعی (مانیتورینگ، پنل ادمین، Botهای فروشگاهی) هم بهخوبی جواب میده و روی نسخههای جدید Bot API همیشه آپدیت میمونه 🔧
Docs و سورس:
📚 Documentations
💻 GitHub
امتحانش کن، روی یه پروژه کوچک تست کن و کمکم منطقهای پیچیدهتر رو اضافه کن 🚀
🔖 #TelegramBot #ربات #تلگرام #python_telegram_bot #Telegram_Bot #Python #ربات_تلگرام #Webhook #Inline_Keyboard
👤 Developix
💎 Channel: @DevelopixRobot