TGViewer
| کانال ربات تلگرام | | کانال ربات تلگرام | @developixrobot · 1.24K subscribers
Post #38 646
📌 ساخت منوی اینلاین حرفه‌ای در ربات تلگرام با Telegraf (Node.js)

اگر تا حالا رباتی دیدی که زیر هر پیام چند تا دکمه شیک اینلاین داره (مثلاً «خرید»، «اطلاعات بیشتر»، «بازگشت»)، دقیقاً همون چیزی رو می‌خوایم بسازیم 😎

تو این پست می‌ریم سراغ ساخت یک ربات Node.js با Telegraf که:

• یک دستور /start داره ✅
• زیر پیام، Inline Keyboard نشون می‌ده ✅
• روی هر دکمه کلیک بشه، بدون ارسال پیام جدید، فقط متن همون پیام رو آپدیت می‌کنه ✅

منبع اصلی این ایده از داکیومنت رسمی Telegraf هست:
telegraf.js.org - Inline Keyboards

برای شروع، فقط لازمه Node.js نصب باشه و یک Bot Token هم از @BotFather گرفته باشی.

۱️⃣ نصب Telegraf

داخل پوشه پروژه:
npm init -y
npm install telegraf


۲️⃣ یک ربات ساده با Inline Keyboard

فایل مثلاً bot.js:
const { Telegraf, Markup } = require('telegraf');

// BotFather توکن رباتت رو اینجا بذار
const bot = new Telegraf('YOUR_BOT_TOKEN_HERE');

// /start - نمایش منوی اینلاین
bot.start((ctx) => {
return ctx.reply(
'سلام 👋\nیک گزینه انتخاب کن:',
Markup.inlineKeyboard([
[
Markup.button.callback('📊 وضعیت ربات', 'status'),
Markup.button.callback('ℹ️ درباره', 'about'),
],
[
Markup.button.url('🌐 وب‌سایت رسمی', 'https://core.telegram.org/bots'),
],
])
);
});

// هندل کردن callbackهای اینلاین
bot.action('status', async (ctx) => {
await ctx.answerCbQuery(); // بستن لودینگ کوچک تلگرام
await ctx.editMessageText('✅ ربات آنلاین است و مشکلی ندارد.');
});

bot.action('about', async (ctx) => {
await ctx.answerCbQuery();
await ctx.editMessageText(
'این یک نمونه ربات ساده با Inline Keyboard است.\n' +
'با Telegraf می‌توانی ربات‌های خیلی حرفه‌ای‌تر بسازی 😉'
);
});

// اجرای ربات با Long Polling
bot.launch().then(() => {
console.log('Bot started...');
});

// برای shutdown تمیز (مخصوص سرورهای واقعی)
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));


حالا فقط کافیه:
node bot.js

رو اجرا کنی و تو تلگرام به رباتت /start بفرستی. می‌بینی که دکمه‌ها زیر پیام ظاهر می‌شن و با کلیک روی هرکدوم، متن همون پیام آپدیت می‌شه؛ بدون این‌که چت شلوغ بشه ✨

نکات ریز ولی مهم 👇

• از ctx.answerCbQuery() استفاده کن تا اون لودینگ ریز روی دکمه گیر نکنه.
• برای دکمه‌هایی که باید به لینک بیرونی برن، از button.url استفاده کن.
• برای ساخت منوهای چندسطحی، می‌تونی داخل هر bot.action دوباره یک Inline Keyboard جدید بفرستی یا پیام رو با editMessageText و کیبورد جدید آپدیت کنی.

امتحانش کن، منوی اینلاین تقریباً تو هر ربات جدی‌ای لازمه و وقتی دستت بیفته، نصف راه UX خوب رو رفتی 🚀

🔖 #TelegramBot #ربات #تلگرام #Telegram_Bot #Node_js #Telegraf #Inline_Keyboard #Programming_Tutorial #Realtime_Bots

👤 Developix

💎 Channel: @DevelopixRobot
  • 👍 3
More from @developixrobot
  1. Sep 18, 2026🔥 پروژه: پچ‌رایت؛ Playwright کم‌تر قابل‌ردیابی پچ‌رایت یک فورک از کتابخانهٔ Playwright بر…
  2. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  3. Sep 1, 2026خیلی وقت‌ها ربات لینک می‌فرستد، اما پیش‌نمایش بزرگ صفحه کل کل چت را شلوغ می‌کند 😅 مخصوصاً…
  4. Aug 27, 2026💠 نسخه جدید کتابخانه GrammY منتشر شده است 🔸 ارتقا از نسخه 1.45.1 به 1.46.0 🔖 #grammy, #…
  5. Aug 26, 2026💠 نسخه جدید کتابخانه آیوگرام (Aiogram) منتشر شده است 🔸 ارتقا از نسخه 3.30.0 به 3.31.0 🔖…
  6. Aug 24, 2026🔥 پروژه: ‏TikTok Live Connector برای ربات‌ها کتابخانه Node.js ‏TikTok Live Connec…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →