إرسال SMS عبر API باستخدام Node.js: مكتبة twilio

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

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

ابدأ الدورة

إرسال SMS باستخدام JavaScript (Node.js): مكتبة twilio



في تطوير الويب الحديث، غالبًا ما تكون هناك حاجة لإرسال إشعارات SMS للمستخدمين: تأكيد التسجيل، رموز المصادقة الثنائية، إشعارات حالة الطلب وغيرها الكثير. في نظام Node.js البيئي، واحدة من أشهر وأكثر المكتبات موثوقية لهذه المهمة هي twilio. وهي SDK رسمية من شركة Twilio، توفر واجهة برمجة تطبيقات بسيطة وقوية لإرسال SMS برمجيًا، والمكالمات الصوتية، والعمل مع خدمات الاتصالات الأخرى.



في هذه المقالة، سنشرح بالتفصيل كيفية تثبيت وتهيئة واستخدام مكتبة twilio لإرسال SMS من تطبيق Node.js الخاص بك. ستتعرف على الطرق الأساسية، وتتعلم كيفية معالجة الأخطاء، وسترى عدة أمثلة عملية.



التثبيت والإعداد



للبدء، ستحتاج إلى حساب على Twilio. بعد التسجيل، ستحصل على:

  • Account SID — معرف فريد لحسابك.
  • Auth Token — مفتاح سري لمصادقة الطلبات.
  • Twilio phone number — رقم هاتف سيتم إرسال SMS منه (يتم توفيره مجانًا للاختبار).


قم بتثبيت المكتبة عبر npm:



npm install twilio


بعد التثبيت، قم بإنشاء ملف send-sms.js وقم بتضمين المكتبة مع تمرير بيانات الاعتماد الخاصة بك:



const twilio = require('twilio');

const accountSid = 'YOUR_ACCOUNT_SID';const authToken = 'YOUR_AUTH_TOKEN';const client = twilio(accountSid, authToken);


إرسال SMS أساسي



لإرسال رسالة، استخدم الطريقة client.messages.create(). تقبل هذه الطريقة كائنًا بثلاثة حقول إلزامية:

  • body — نص الرسالة (حتى 1600 حرف لرسالة SMS واحدة).
  • from — رقم Twilio الخاص بك (بالتنسيق +1234567890).
  • to — رقم المستلم (أيضًا بالتنسيق الدولي).


مثال على إرسال SMS بسيط:



client.messages  .create({    body: 'مرحبًا! هذه رسالة اختبارية من Twilio.',    from: '+1234567890',    to: '+79876543210'  })  .then(message => console.log('تم إرسال الرسالة. SID:', message.sid))  .catch(error => console.error('خطأ:', error));


بعد الإرسال الناجح، ستحصل على كائن message يحتوي على sid فريد (معرف الرسالة)، وحالة التسليم، ومعلومات أخرى.



الإرسال غير المتزامن باستخدام async/await



للحصول على نهج أكثر حداثة، استخدم بناء الجملة async/await. قم بتغليف الاستدعاء في try...catch لمعالجة الأخطاء:



const sendSMS = async (to, body) => {  try {    const message = await client.messages.create({      body: body,      from: '+1234567890',      to: to    });    console.log(`تم إرسال SMS إلى ${to}. SID: ${message.sid}`);    return message;  } catch (error) {    console.error('فشل إرسال SMS:', error.message);    throw error;  }};

// الاستخدامsendSMS('+79876543210', 'رمز التأكيد الخاص بك: 1234');


معلمات إضافية



تدعم المكتبة العديد من المعلمات الاختيارية. إليك بعضها:

  • mediaUrl — رابط صورة أو ملف وسائط آخر (لـ MMS).
  • statusCallback — رابط لتلقي إشعارات حالة التسليم (webhook).
  • applicationSid — SID تطبيق Twilio لتكوين إضافي.


مثال على إرسال MMS مع صورة:



client.messages  .create({    from: '+1234567890',    to: '+79876543210',    body: 'ألق نظرة على هذا',                    

توصيات