خیلی وقتها یه ربات ساده
/start داریم که فقط جواب متن میده. ولی رباتهای کاربردی معمولاً با Inline Keyboard کار میکنن: دکمههای زیر پیام که با لمس کردنشون، ربات یه اکشن مشخص انجام میده (مثلاً «دیدن منو»، «گرفتن لینک»، «ثبتنام» و ...).تو این پست، خیلی جمع و جور، یه ربات Python میسازیم که:
• با
/start خوشآمد میگه 😄• یه دکمه «دیدن زمان الان ⏰» نشون میده
• با زدن دکمه، ساعت فعلی رو برمیگردونه
پایهی کارمون روی کتابخونهی معروف pyTelegramBotAPI هست که دقیقا روی Telegram Bot API پیادهسازی شده و مستنداتش اینجاست:
github.com/eternnoir/pyTelegramBotAPI
نصب و راهاندازی سریع ⚙️
۱️⃣ با BotFather یه Bot جدید بساز و
TOKEN رو بگیر.۲️⃣ روی سرور یا سیستم خودت Python 3 داشته باش.
۳️⃣ این پکیج رو نصب کن:
pip install pyTelegramBotAPI
نمونه کد ربات دکمهدار 🧩
کد زیر یه ربات کامل و قابل اجراست (با
polling):import telebot
from telebot import types
from datetime import datetime
API_TOKEN = "YOUR_BOT_TOKEN_HERE"
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(commands=["start"])
def send_welcome(message):
keyboard = types.InlineKeyboardMarkup()
btn_time = types.InlineKeyboardButton(
text="⏰ دیدن زمان الان",
callback_data="show_time"
)
keyboard.add(btn_time)
bot.send_message(
message.chat.id,
"سلام! 👋\nبا دکمه زیر میتونی زمان فعلی سرور رو ببینی.",
reply_markup=keyboard
)
@bot.callback_query_handler(func=lambda c: c.data == "show_time")
def process_callback_show_time(callback_query):
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
bot.answer_callback_query(callback_query.id)
bot.send_message(
callback_query.message.chat.id,
f"⏰ زمان فعلی: {now}"
)
if __name__ == "__main__":
print("Bot is running...")
bot.infinity_polling()
چند نکتهی ریز ولی مهم 🛠
•
callback_data حداکثر ۶۴ بایت میتونه باشه؛ برای اطلاعات پیچیدهتر بهتره یه ID بفرستی و دیتای اصلی رو تو Database نگه داری.• همیشه بعد از هندل کردن دکمه، یه
answer_callback_query صدا بزن (مثل کد بالا) تا خطای query is too old نگیری و UX بهتر بشه.• برای رباتهای جدی، بهجای
polling بهتره از webhook استفاده بشه (مثلاً پشت Nginx یا روی Cloudflare Tunnel).این اسکلت ساده، همون چیزیه که بعداً میتونه تبدیل بشه به رباتهای منویی، سیستم تیکت، فرم ثبتنام، یا حتی پنل مدیریت داخل خود تلگرام.
امتحانش کن و اگر برات مفید بود، با بقیهی دولوپرهای ربات تلگرام هم شیرش کن 🌱
🔖 #TelegramBot #ربات #تلگرام #Telegram_Bot #Python #pyTelegramBotAPI #Inline_Keyboard #Webhook #Polling #Bot_Development #Persian
👤 Developix
💎 Channel: @DevelopixRobot