إنشاء بوت تليجرام بايثون: دليل شامل باستخدام telegram-bot-api

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

كيفية إنشاء بوت تليجرام بايثون باستخدام telegram-bot-api؟ دليل شامل

مقدمة عن بوتات تليجرام

في عالم اليوم، أصبحت تطبيقات المراسلة جزءًا لا يتجزأ من حياتنا، وأصبحت البوتات أداة مريحة لأتمتة المهام والتواصل مع المستخدمين وحتى إدارة الأعمال. إذا كنت تريد إنشاء بوت تليجرام خاص بك بسرعة وسهولة، فإن لغة بايثون ومكتبة python-telegram-bot هما الخيار الأمثل.

الخطوة 1: الحصول على رمز التوكن من BotFather

قبل كتابة الكود، يجب تسجيل بوتك في تليجرام. للقيام بذلك:

  1. افتح تليجرام وابحث عن المستخدم @BotFather.
  2. أرسل الأمر /start ثم /newbot.
  3. اختر اسمًا واسم مستخدم فريدًا لبوتك (مثل: MyFirstPythonBot).
  4. بعد التسجيل، سيمنحك 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                

المدونات

توصيات الكتب