إرسال SMS باستخدام PHP: نظرة عامة على مكتبات API للتكامل

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

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

ابدأ الدورة

إرسال SMS باستخدام PHP: نظرة عامة على مكتبات API وأمثلة التكامل

لا يزال إرسال رسائل SMS وظيفة مطلوبة لتطبيقات الويب: المصادقة الثنائية، إشعارات الطلبات، النشرات التسويقية. في PHP، يتم حل هذه المهمة عبر API لخدمات الطرف الثالث. في هذه المقالة، سنستعرض المكتبات الشائعة، طرق ربطها، وسنقدم أمثلة عملية للكود.



1. الخدمات الشائعة ومكتبات PHP الخاصة بها

يعتمد اختيار المزود على المنطقة والسعر ومتطلبات التوصيل. لننظر في ثلاثة خيارات:

  • Twilio — الرائد عالميًا، يوفر SDK لـ PHP (twilio/sdk). مناسب للمشاريع العالمية.
  • SMS Aero — خدمة روسية مع REST API بسيط ومكتبة PHP رسمية.
  • smsc.ru — خدمة محلية شائعة أخرى بأسعار منخفضة ونصوص جاهزة.


2. التثبيت عبر Composer

معظم المكتبات الحديثة تُثبت عبر Composer. مثال لـ Twilio:

composer require twilio/sdk

لـ SMS Aero استخدم:

composer require smsaero/smsaero-php

إذا كنت تستخدم smsc.ru، يمكنك الاستغناء عن Composer — فقط انسخ فئة PHP الخاصة بهم من GitHub.



3. مثال إرسال SMS عبر Twilio

تتطلب مكتبة Twilio Account SID و Auth Token، والتي تحصل عليها من لوحة التحكم.

<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

// بياناتك$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);

// إرسال SMS$message = $twilio->messages ->create( "+71234567890", // رقم المستلم [ "from" => "+15017122661", // رقم المرسل (مشترى من Twilio) "body" => "مرحبًا! هذه رسالة SMS تجريبية من Twilio." ] );

echo "تم إرسال الرسالة! SID: " . $message->sid;?>


4. إرسال SMS عبر SMS Aero (REST API)

يستخدم SMS Aero مفتاح API واسم المستخدم. توفر المكتبة واجهة مريحة:

<?phprequire_once 'vendor/autoload.php';

use Smsaero\\Smsaero;

$client = new Smsaero('your_email@example.com', 'your_api_key');

// إرسال الرسالة$response = $client->send('71234567890', 'رسالة تجريبية من SMS Aero');

if ($response->success) { echo "تم إرسال SMS. المعرف: " . $response->id;} else { echo "خطأ: " . $response->error;}?>


5. العمل مع smsc.ru (بدون Composer)

لـ smsc.ru يمكنك استخدام طلبات HTTP مباشرة أو فئتهم الجاهزة. مثال بسيط عبر cURL:

<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "مرحبًا من smsc.ru!";

$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — الرد بصيغة JSON

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);

$data = json_decode($response, true);if ($data['error'] ?? false) { echo "خطأ: " . $data['error'];} else { echo "تم إرسال SMS. المعرف: " . $data['id'];}?>


6. معالجة الأخطاء وتسجيل السجلات

عند إرسال SMS، من المهم معالجة الأخطاء بشكل صحيح. المشاكل النموذجية:

  • بيانات اعتماد غير صحيحة (401 Unauthorized).
  • رصيد غير كافٍ.
  • الرقم في القائمة السوداء.
  • تجاوز حدود الإرسال.

مثال معالجة الاستثناءات لـ Twilio:

<?phptry {    $message = $twilio->messages->create(...);    // تسجيل النجاح    error_log("تم إرسال SMS: " . $message->sid);} catch (Exception $e) {    // تسجيل الخطأ    error_log("فشل إرسال SMS: " . $e->getMessage());    echo "حدث خطأ أثناء إرسال الرسالة.";}?>


الخلاصة

اختيار مكتبة لإرسال SMS يعتمد على احتياجات مشروعك. Twilio مناسب للتطبيقات العالمية، SMS Aero و smsc.ru — للجمهور الناطق بالروسية. استخدم Composer للتثبيت، ولا تنسَ معالجة الأخطاء وتسجيل السجلات لضمان موثوقية الإرسال.

توصيات