إنشاء chatbot بلغة PHP: من النظرية إلى الكود العملي

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

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

ابدأ الدورة

لماذا PHP لغة ممتازة لـ chatbot؟

\n

عندما يتعلق الأمر بإنشاء chatbots، يفكر الكثيرون فورًا في Python أو Node.js. لكن PHP، التي يعمل عليها pythonlib.ru وجزء كبير من الإنترنت، ليست أقل كفاءة في هذه المهمة. تمتلك PHP ثلاث مزايا رئيسية: سهولة النشر على أي استضافة، عدد هائل من المكتبات الجاهزة، وبناء جملة مفهوم. إذا كنت بالفعل على دراية بـ PHP، يمكنك كتابة أول chatbot لك في أمسية واحدة. في هذه المقالة، سنشرح إنشاء chatbot بلغة PHP من الصفر، بدءًا من التسجيل في Telegram وانتهاءً بمعالجة الأوامر المعقدة.

\n

لن نستخدم أطر العمل — فقط PHP النقي ومكتبة رسمية واحدة. سيتيح لك ذلك فهم كيفية عمل كل شيء "تحت الغطاء". وبعد ذلك يمكنك الانتقال بسهولة إلى أي إطار عمل حديث (Laravel، Symfony) للتوسع.

\n\n

ماذا تحتاج للبدء؟

\n

قبل كتابة الكود، دعنا نجهز بيئة العمل. لتطوير بوت بلغة PHP ستحتاج إلى:

\n
    \n
  • خادم ويب (Apache أو Nginx) مع PHP 7.4 أو أعلى — أي استضافة أو OpenServer على الجهاز المحلي مناسبة.
  • \n
  • الوصول إلى HTTPS — يتطلب Telegram اتصالاً آمنًا لـ Webhook (يمكن استخدام ngrok للتطوير المحلي).
  • \n
  • Composer — مدير الحزم لـ PHP (التثبيت بأمر واحد).
  • حساب Telegram — لتسجيل البوت واختباره.
\n

إذا كان لديك بالفعل موقع بلغة PHP، مثل pythonlib.ru، يمكنك إضافة البوت مباشرة على نطاق فرعي — وهذا مريح ولا يتطلب تكاليف إضافية.

\n\n

تسجيل البوت في Telegram

\n

افتح Telegram، وابحث عن BotFather (البوت الرسمي لإنشاء البوتات) وأرسل الأمر:

\n
/newbot
\n

سيطلب BotFather منك اختيار اسم واسم مستخدم لبوتك. يجب أن ينتهي اسم المستخدم بـ bot، على سبيل المثال: MyFirstPHPBot. بعد التسجيل الناجح، ستحصل على رمز مميز — سلسلة طويلة مثل:

\n
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
\n

احفظ هذا الرمز المميز — ستحتاجه لجميع طلبات API. لا تشاركه مع أي شخص، وإلا قد يتم اختراق بوتك.

\n\n

هندسة chatbot: Long Polling مقابل Webhook

\n

هناك طريقتان لجعل البوت يتلقى الرسائل:

\n
    \n
  • Long Polling — البوت نفسه يسأل خادم Telegram باستمرار: "هل هناك رسائل جديدة؟". أسهل للتصحيح، لكنه يثقل الخادم.
  • \n
  • Webhook — Telegram نفسه يرسل طلب POST إلى عنوان URL الخاص بك عندما يكتب شخص ما للبوت. أسرع وأكثر موثوقية، ويتطلب HTTPS.
\n

في هذا الدليل العملي سنستخدم Webhook، لأنه المعيار الحديث لبوتات الإنتاج. يمكن إعداده بأمر واحد عبر المتصفح.

\n\n

الخطوة 1: تثبيت مكتبة العمل مع Telegram API

\n

لتجنب كتابة تحليل JSON وإرسال الطلبات يدويًا، سنقوم بتثبيت مكتبة PHP الرسمية من Telegram. افتح الطرفية في مجلد مشروعك ونفذ:

\n
composer require telegram-bot/api
\n

تدعم هذه المكتبة جميع طرق API ويتم تحديثها مع Telegram. بعد التثبيت، سيظهر مجلد vendor وملف composer.json.

\n\n

الخطوة 2: السكريبت الأساسي لمعالجة الرسائل الواردة

\n

أنشئ ملفًا باسم bot.php — ستكون هذه نقطة الدخول لـ Webhook. إليك الكود الأدنى الذي يرد بـ "مرحبًا!" على أي رسالة:

\n\n
<?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Telegram\\Bot\\Api;\n\n$token = 'رمزك_المميز_هنا';\n$telegram = new Api($token);\n\n// استقبال التحديث الوارد\n$update = $telegram->getWebhookUpdate();\n\n// استخراج نص الرسالة ومعرف الدردشة\n$message = $update->getMessage();\n$chatId                

المدونات

توصيات الكتب