لماذا 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 — لتسجيل البوت واختباره.
إذا كان لديك بالفعل موقع بلغة PHP، مثل pythonlib.ru، يمكنك إضافة البوت مباشرة على نطاق فرعي — وهذا مريح ولا يتطلب تكاليف إضافية.
\n\nتسجيل البوت في Telegram
\nافتح Telegram، وابحث عن BotFather (البوت الرسمي لإنشاء البوتات) وأرسل الأمر:
\n/newbot\nسيطلب BotFather منك اختيار اسم واسم مستخدم لبوتك. يجب أن ينتهي اسم المستخدم بـ bot، على سبيل المثال: MyFirstPHPBot. بعد التسجيل الناجح، ستحصل على رمز مميز — سلسلة طويلة مثل:
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw\nاحفظ هذا الرمز المميز — ستحتاجه لجميع طلبات API. لا تشاركه مع أي شخص، وإلا قد يتم اختراق بوتك.
\n\nهندسة chatbot: Long Polling مقابل Webhook
\nهناك طريقتان لجعل البوت يتلقى الرسائل:
\n- \n
- Long Polling — البوت نفسه يسأل خادم Telegram باستمرار: "هل هناك رسائل جديدة؟". أسهل للتصحيح، لكنه يثقل الخادم. \n
- Webhook — Telegram نفسه يرسل طلب POST إلى عنوان URL الخاص بك عندما يكتب شخص ما للبوت. أسرع وأكثر موثوقية، ويتطلب HTTPS.
في هذا الدليل العملي سنستخدم Webhook، لأنه المعيار الحديث لبوتات الإنتاج. يمكن إعداده بأمر واحد عبر المتصفح.
\n\nالخطوة 1: تثبيت مكتبة العمل مع Telegram API
\nلتجنب كتابة تحليل JSON وإرسال الطلبات يدويًا، سنقوم بتثبيت مكتبة PHP الرسمية من Telegram. افتح الطرفية في مجلد مشروعك ونفذ:
\ncomposer require telegram-bot/api\nتدعم هذه المكتبة جميع طرق API ويتم تحديثها مع Telegram. بعد التثبيت، سيظهر مجلد vendor وملف composer.json.
الخطوة 2: السكريبت الأساسي لمعالجة الرسائل الواردة
\nأنشئ ملفًا باسم bot.php — ستكون هذه نقطة الدخول لـ Webhook. إليك الكود الأدنى الذي يرد بـ "مرحبًا!" على أي رسالة:
<?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