كيفية إنشاء بوت تليجرام بايثون باستخدام telegram-bot-api؟ دليل شامل
مقدمة عن بوتات تليجرام
في عالم اليوم، أصبحت تطبيقات المراسلة جزءًا لا يتجزأ من حياتنا، وأصبحت البوتات أداة مريحة لأتمتة المهام والتواصل مع المستخدمين وحتى إدارة الأعمال. إذا كنت تريد إنشاء بوت تليجرام خاص بك بسرعة وسهولة، فإن لغة بايثون ومكتبة python-telegram-bot هما الخيار الأمثل.
الخطوة 1: الحصول على رمز التوكن من BotFather
قبل كتابة الكود، يجب تسجيل بوتك في تليجرام. للقيام بذلك:
- افتح تليجرام وابحث عن المستخدم @BotFather.
- أرسل الأمر /start ثم /newbot.
- اختر اسمًا واسم مستخدم فريدًا لبوتك (مثل: MyFirstPythonBot).
- بعد التسجيل، سيمنحك BotFather رمز API (Token). انسخه - ستحتاجه في الكود.
الخطوة 2: تثبيت المكتبات المطلوبة
للتفاعل مع Telegram API، سنستخدم مكتبة python-telegram-bot. قم بتثبيتها عبر pip:
pip install python-telegram-bot --upgrade
الخطوة 3: الهيكل الأساسي للبوت
الآن سننشئ بوتًا بسيطًا يستجيب للأمر /start:
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("مرحبًا! أنا أول بوت لك بلغة بايثون!")
if __name__ == '__main__':
app = ApplicationBuilder().token("TOKEN_HERE").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
شرح الكود:
ApplicationBuilderوCommandHandlerهما أدوات أساسية لمعالجة الأوامر.- الدالة
startتستجيب للأمر /start وترسل رسالة نصية للمستخدم. - الطريقة
run_polling()تشغل البوت وتبدأ في فحص الرسائل الجديدة.
الخطوة 4: معالجة رسائل المستخدم
أضف معالجة للرسائل النصية العادية:
from telegram.ext import MessageHandler, filters
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
received_text = update.message.text
await update.message.reply_text(f"لقد كتبت: {received_text}")
if __name__ == '__main__':
app = ApplicationBuilder().token("TOKEN_HERE").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()
الآن سيرد البوت على أي رسالة نصية بتكرار النص الذي أرسلته.
الخطوة 5: إضافة الأزرار والقوائم التفاعلية
تصبح البوتات أكثر فائدة عند إضافة الأزرار:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
keyboard = [
[InlineKeyboardButton("الزر 1", callback_data='button1')],
[InlineKeyboardButton("الزر 2", callback_data='button2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text('اختر خيارًا:', reply_markup=reply_markup)
async def button_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
query = update.callback_query
await query.answer()
await query.edit_message_text(text=f"لقد ضغطت على: {query.data}")
if __name__ == '__main__':
from telegram.ext import CallbackQueryHandler
app = ApplicationBuilder().token("TOKEN_HERE").build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("menu", menu))
app.add_handler(CallbackQueryHandler(button_handler))
app.add_handler