logo

Hcody

🚀 روّج لعلامتك التجارية هنا — وصَل جمهورنا المذهل!
الرئيسية/ المقالات / create-telegram-bot-laravel-webhook

ربط تيليجرام مع لارفيل: دليل شامل لإعداد الويب هوك

By هشام النحاس · نُشر في December 31, 2025

إن دمج بوت تيليجرام داخل تطبيق لارفيل (Laravel) يفتح آفاقاً مذهلة. بدلاً من تشغيل نصوص برمجية منفصلة في الخلفية، يمكنك معالجة رسائل المستخدمين مباشرة داخل دورة حياة تطبيقك.

في هذا الدليل، سنستخدم تقنية Webhooks، وهي الطريقة الأكثر كفاءة لتطبيقات الويب الحديثة، لربط لارفيل مع تيليجرام في الوقت الفعلي.

المتطلبات المسبقة

مشروع لارفيل

نسخة لارفيل مثبتة وتعمل (يفضل الإصدار 10 أو 11).

اتصال آمن (HTTPS)

يشترط تيليجرام وجود SSL. للتطوير المحلي، سنستخدم Ngrok.

حساب تيليجرام

للوصول إلى BotFather والحصول على الرموز.


الخطوة 1: إعداد البوت والرمز (Token)

كل شيء يبدأ من BotFather داخل تطبيق تيليجرام:

  1. ابحث عن @BotFather.
  2. أرسل الأمر /newbot.
  3. اختر اسماً للبوت، ثم اسم مستخدم (يجب أن ينتهي بـ bot).
  4. انسخ 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']);
تجاوز حماية CSRF

لارفيل يرفض طلبات 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
مبروك!

البوت يعمل الآن. جرب إرسال رسالة في تيليجرام وشاهد رد تطبيق لارفيل عليك فوراً.

المقالات ذات الصلة

🚀 روّج لعلامتك التجارية هنا — وصَل جمهورنا المذهل!