زيد ياغي نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس لدي موقع مُسَضاف على موقع https://www.infinityfree.com المجاني والذي يدعم لغة الـــ PHP ، وهو يعمل بشكل جيد حتى أن موقع الاستضافة دعم موقعي بخاصية الأمان(https)! استخدمت أحد أقسامه لانشاء نموذج اتصال (https://gbzy.free.nf/contact) وهو يعمل بكفاءة عالية على الشكل التالي: يُدخِل المستخدم اسمه وبريده الالكتروني ونص الرسالة وبعد التحقق من الكابتشا يتم الارسال! استخدمت مكتبة الــ (PHPMailer) لتصلني رسالة المستخدم على بريدي الالكتروني! سؤالي: هل يمكن إيصال الرسالة إلى بوت تلغرام بطريقة ما؟ علماً أنني أنشأت على التلغرام بوتاً مخصصاً لذلك ولدي التوكن الخاص بالبوت ومعرف الشات الخاص بي؟ جربت طرقاً عديدة واستعنت بالشات جي بي تي وفشلت بعمل طريقة لاستقبال الرسائل عبر البوت بدلاً من البريد الالكتروني! هل هناك مواقع استضافة مجانية تدعم الـ PHP وتدعم عمل البوت؟ 1 اقتباس
0 Mustafa Suleiman نشر 13 أغسطس أرسل تقرير نشر 13 أغسطس لا حاجة إذن إلى استخدام PHPMailer، فما تحتاجه هو الإعتماد على Telegram Bot API وإرسال محتوى الرسالة إلى البوت الخاص بك. أي إرسال الـ data الخاصة بالنموذج إلى الـ API التالي: $url = "https://api.telegram.org/bot{$botToken}/sendMessage"; بالطبع botToken هو متغير عليك إنشائه ووضع قيمة التوكن الخاصة بالبوت الذي قمت بإنشائه على تليجيرام، وستحتاج أيضًا إلى إرسال الـ chatId الخاص بالبوت مع البيانات في جسم الطلب body. وبالطبع عليك تهيئة نص الرسالة ومعالجته قبل إرساله إلى هاتفك، ومعالجة الأخطاء الواردة، كالتالي: <?php header('Content-Type: application/json'); define('BOT_TOKEN', 'هنا'); // ضع التوكن هنا define('CHAT_ID', 'هنا'); // ضع معرف الشات هنا if ($_SERVER['REQUEST_METHOD'] !== 'POST') { http_response_code(405); echo json_encode(['ok' => false, 'message' => 'يجب استخدام طريقة POST فقط']); exit; } $errors = []; $name = trim($_POST['name'] ?? ''); $email = trim($_POST['email'] ?? ''); $message = trim($_POST['message'] ?? ''); if (empty($name)) { $errors[] = 'حقل الاسم مطلوب.'; } if (empty($email)) { $errors[] = 'حقل البريد الإلكتروني مطلوب.'; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = 'صيغة البريد الإلكتروني غير صحيحة.'; } if (empty($message)) { $errors[] = 'حقل الرسالة مطلوب.'; } if (!empty($errors)) { http_response_code(400); echo json_encode(['ok' => false, 'errors' => $errors]); exit; } $safe_name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8'); $safe_email = htmlspecialchars($email, ENT_QUOTES, 'UTF-8'); $safe_message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8'); $text = "<b>📩 رسالة جديدة من موقعك</b>\n\n"; $text .= "<b>👤 الاسم:</b> " . $safe_name . "\n"; $text .= "<b>📧 البريد:</b> " . $safe_email . "\n"; $text .= "<b>💬 الرسالة:</b>\n" . $safe_message; $url = "https://api.telegram.org/bot" . BOT_TOKEN . "/sendMessage"; $data = [ 'chat_id' => CHAT_ID, 'text' => $text, 'parse_mode' => 'HTML' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $curl_error = curl_error($ch); curl_close($ch); if ($curl_error) { http_response_code(500); echo json_encode(['ok' => false, 'message' => 'فشل الاتصال بـ cURL: ' . $curl_error]); } elseif ($http_code !== 200) { http_response_code(500); echo json_encode(['ok' => false, 'message' => 'واجهة التلغرام أرجعت خطأ.', 'response' => json_decode($response)]); } else { $telegramResponse = json_decode($response, true); if (isset($telegramResponse['ok']) && $telegramResponse['ok'] === true) { http_response_code(200); echo json_encode(['ok' => true, 'message' => 'تم إرسال الرسالة بنجاح!']); } else { http_response_code(500); echo json_encode(['ok' => false, 'message' => 'فشل إرسال الرسالة حسب رد التلغرام.', 'response' => $telegramResponse]); } } ?> 1 اقتباس
السؤال
زيد ياغي
لدي موقع مُسَضاف على موقع https://www.infinityfree.com المجاني والذي يدعم لغة الـــ PHP ، وهو يعمل بشكل جيد حتى أن موقع الاستضافة دعم موقعي بخاصية الأمان(https)!
استخدمت أحد أقسامه لانشاء نموذج اتصال (https://gbzy.free.nf/contact) وهو يعمل بكفاءة عالية على الشكل التالي:
يُدخِل المستخدم اسمه وبريده الالكتروني ونص الرسالة وبعد التحقق من الكابتشا يتم الارسال!
استخدمت مكتبة الــ (PHPMailer) لتصلني رسالة المستخدم على بريدي الالكتروني!
سؤالي: هل يمكن إيصال الرسالة إلى بوت تلغرام بطريقة ما؟ علماً أنني أنشأت على التلغرام بوتاً مخصصاً لذلك ولدي التوكن الخاص بالبوت ومعرف الشات الخاص بي؟
جربت طرقاً عديدة واستعنت بالشات جي بي تي وفشلت بعمل طريقة لاستقبال الرسائل عبر البوت بدلاً من البريد الالكتروني!
هل هناك مواقع استضافة مجانية تدعم الـ PHP وتدعم عمل البوت؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.