ربط تيليجرام مع لارفيل: دليل شامل لإعداد الويب هوك
By هشام النحاس · نُشر في December 31, 2025
إن دمج بوت تيليجرام داخل تطبيق لارفيل (Laravel) يفتح آفاقاً مذهلة. بدلاً من تشغيل نصوص برمجية منفصلة في الخلفية، يمكنك معالجة رسائل المستخدمين مباشرة داخل دورة حياة تطبيقك.
في هذا الدليل، سنستخدم تقنية Webhooks، وهي الطريقة الأكثر كفاءة لتطبيقات الويب الحديثة، لربط لارفيل مع تيليجرام في الوقت الفعلي.
المتطلبات المسبقة
مشروع لارفيل
نسخة لارفيل مثبتة وتعمل (يفضل الإصدار 10 أو 11).
اتصال آمن (HTTPS)
يشترط تيليجرام وجود SSL. للتطوير المحلي، سنستخدم Ngrok.
حساب تيليجرام
للوصول إلى BotFather والحصول على الرموز.
الخطوة 1: إعداد البوت والرمز (Token)
كل شيء يبدأ من BotFather داخل تطبيق تيليجرام:
- ابحث عن @BotFather.
- أرسل الأمر
/newbot. - اختر اسماً للبوت، ثم اسم مستخدم (يجب أن ينتهي بـ bot).
- انسخ API Token وأضفه لملف
.env:
TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
الخطوة 2: إنشاء المسار والمتحكم
نحتاج إلى نقطة نهاية (Endpoint) لاستقبال البيانات. لنقم بإنشاء Controller:
php artisan make:controller TelegramBotController
ثم أضف المسار في ملف routes/web.php:
use App\Http\Controllers\TelegramBotController;
use Illuminate\Support\Facades\Route;
Route::post('/telegram/webhook', [TelegramBotController::class, 'handle']);
لارفيل يرفض طلبات POST الخارجية التي لا تملك توكن CSRF. بما أن تيليجرام هو المرسل، يجب استثناء المسار telegram/webhook في ملف bootstrap/app.php (لإصدار 11) أو Middleware.
الخطوة 4: كتابة منطق البوت
إليك الكود الكامل للمتحكم للرد على الرسائل:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class TelegramBotController extends Controller
{
public function handle(Request $request)
{
$update = $request->all();
// التحقق من وجود رسالة نصية
if (isset($update['message'])) {
$chatId = $update['message']['chat']['id'];
$text = $update['message']['text'] ?? '';
if ($text === '/start') {
$response = "أهلاً بك في بوت لارفيل!";
} else {
$response = "لقد قلت: " . $text;
}
$this->sendMessage($chatId, $response);
}
return response()->json(['status' => 'ok']);
}
private function sendMessage($chatId, $text)
{
$token = env('TELEGRAM_BOT_TOKEN');
$url = "https://api.telegram.org/bot{$token}/sendMessage";
Http::post($url, [
'chat_id' => $chatId,
'text' => $text,
]);
}
}
الخطوة 5: تفعيل الويب هوك (Webhook)
إذا كنت تعمل محلياً (Localhost)، استخدم Ngrok للحصول على رابط HTTPS عام. لا يقبل تيليجرام روابط http://localhost.
لربط البوت بتطبيقك، قم بزيارة هذا الرابط في المتصفح (بعد استبدال البيانات):
https://api.telegram.org/bot<YOUR_TOKEN>/setWebhook?url=https://your-domain.com/telegram/webhook
البوت يعمل الآن. جرب إرسال رسالة في تيليجرام وشاهد رد تطبيق لارفيل عليك فوراً.