كيفية استقبال الرسائل القصيرة في C#

تقدم هذه المقالة معلومات حول كيفية استقبال الرسائل القصيرة في C# باستخدام بوابة Ozeki SMS. تابع القراءة لمعرفة المزيد عن هذه الإجراءات!

لماذا تريد استقبال الرسائل القصيرة في C#؟

هناك أسباب متعددة لاستقبال الرسائل القصيرة في C#. قد ترغب في جمع البيانات من المستشعرات أو مستخدمي الهواتف المحمولة، أو قد ترغب في إنشاء خدمات رسائل نصية ترسل ردًا بمعلومات، أو يمكنك ببساطة أن تطلب من مستخدميك تأكيد استلامهم لرسالة SMS.

المتطلبات الأساسية

كيفية استقبال الرسائل القصيرة في C# (خطوات سريعة)

كيفية استقبال الرسائل القصيرة في C#
  1. قم بتنزيل مثال استقبال SMS في C#
  2. افتح الحل في Visual Studio
  3. اتصل ببوابة Ozeki SMS
  4. استقبل رسالة SMS محاكاة في C#
  5. اتصل بشبكة الهاتف المحمول
  6. استقبل رسالة SMS في C# تم إرسالها من هاتف محمول
  7. تحقق من السجلات في بوابة SMS
  8. تحقق من تقرير التسليم على هاتفك المحمول

استقبال الرسائل القصيرة في C#
الشكل 1 - استقبال الرسائل القصيرة في C#

عينة كود C# لاستقبال الرسائل النصية

توضح عينة كود C# أدناه أهم الخطوات لإنشاء خدمة استقبال الرسائل القصيرة. تأتي واجهة برمجة تطبيقات Ozeki C# SMS مجانًا. يمكنك تعديل مكتبة API والأمثلة التي تأتي معها، ويمكنك استخدامها في مشروعك وإعادة توزيعها أو مشتقاتها بحرية. يوضح المثال التالي كيفية الاشتراك في حدث OnMessageReceived في C# وكيفية التعامل مع هذا الحدث. يطبع المثال الرسالة الواردة على وحدة التحكم.


class Program
{
    static OzxClient Client;

    static void Main(string[] args)
    {
        Client = new OzxClient();
        Client.AutoReconnect = true;
        Client.OnMessageReceived += Client_OnMessageReceived;
        
        Client.Connect("127.0.0.1",9580,"testuser","testpass");
    }

    static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e)
    {
        Console.WriteLine("Message received: " + e.Item.ToString());
    }
}

المعامل e.Item هو رسالة OzxMessage كاملة. هذا يعني أن لديك كل تفاصيل رسائل SMS في حدث واجهة برمجة تطبيقات C# SMS الخاصة بك. تتضمن هذه التفاصيل معرف المرسل ورقم الهاتف الذي تم إرسال الرسالة إليه ونص الرسالة والطوابع الزمنية المقابلة.

أحد أكبر مزايا استخدام واجهة برمجة تطبيقات Ozeki C# SMS هو أنك تحصل على رسائل SMS الواردة على الفور. بمجرد وصولها إلى بوابة SMS، يتم إعادة توجيهها إلى عميل C# SMS الخاص بك عبر اتصال TCP/IP المنشأ. هذا يعني أنك لن تواجه أي تأخير.

إذا لم يكن عميل واجهة برمجة تطبيقات C# SMS الخاص بك متصلاً ببوابة SMS عند استلام الرسالة، يتم تخزين الرسالة في مجلد الوارد في بوابة SMS. هذا يعني أن رسائلك الواردة لن تضيع حتى إذا كان برنامج SMS الذي كتبته باستخدام واجهة برمجة تطبيقات C# SMS غير متصل. هذا بسبب أن بوابة Ozeki SMS هي في الواقع خادم SMS.

الخطوة 1 - تنزيل مكتبة Ozeki C# SMS

انتقل إلى https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip وقم بتنزيل ملف zip باستخدام متصفحك. سيتم حفظ ملف zip في مجلد التنزيلات الخاص بك (الشكل 2). يمكنك فتح التنزيل مباشرة في مستكشف Windows. ستحتوي حزمة zip التي تم تنزيلها على كود المثال الذي يمكنك استخدامه لاستقبال الرسائل القصيرة في C#.

تم تنزيل مكتبة Ozeki SMS
الشكل 2 - تم تنزيل مكتبة Ozeki SMS

الخطوة 2 - استخراج مكتبة C# SMS

استخرج مكتبة C# SMS بالضغط على ملف OzekiConsole.zip بزر الماوس الأيمن (الشكل 2). سيؤدي هذا إلى إظهار قائمة السياق. في قائمة السياق، حدد "Extract All...". سيؤدي هذا إلى إظهار نافذة "Extract dialog"، حيث يجب النقر على Extract.

انقر على زر "Extract" في نافذة "Extract All" (الشكل 3).

استخراج مثال استقبال SMS في C#
الشكل 3 - استخراج مثال استقبال SMS في C#

الخطوة 3 - افتح المشروع في Visual Studio

افتح مجلد OzekiConsole. سيظهر هذا المجلد بعد استخراج حزمة OzekiConsol.zip. في مجلد OzekiConsole، انقر نقرًا مزدوجًا على ملف OzekiConsole.sln. سيؤدي هذا إلى إظهار مربع الحوار "How do you want to open this file?". في مربع الحوار هذا، حدد "Visual Studio". بعد تحديد Visual Studio، انقر على موافق لفتح مشروع C# النموذجي. (الشكل 4)

فتح مثال استقبال SMS في C# في Visual Studio
الشكل 4 - فتح مثال استقبال SMS في C# في Visual Studio

الخطوة 4 - انقر على Program.cs

افتح Program.cs بالنقر على الملف في مستكشف الحلول على الجانب الأيسر من الشاشة. هذا هو الكود الرئيسي لمشروع C# هذا. يحتوي هذا الكود على أمثلة حول كيفية إرسال الرسائل القصيرة من C# وكيفية استقبال الرسائل القصيرة في C#. الكود ليس طويلاً جداً، فهو حوالي 300 سطر. وهو يوضح الوظائف الكاملة لـ C# SMS API. (الشكل 5)

تحميل Program.cs في المحرر
الشكل 5 - تحميل Program.cs في المحرر

الخطوة 5 - تعيين نقطة توقف في كود مستقبل الرسائل القصيرة

ابحث عن معالج الحدث OnMessageReceived وقم بتعيين نقطة توقف في السطر الأول من الإجراء. ستتيح لك نقطة التوقف هذه فرصة لالتقاط حدث OnMessageReceived. يتم تشغيل حدث OnMessageReceived عندما يستقبل عميل C# SMS الخاص بك رسالة SMS من بوابة الرسائل القصيرة. (الشكل 6)

تعيين نقطة توقف في حدث استقبال الرسائل القصيرة
الشكل 6 - تعيين نقطة توقف في حدث استقبال الرسالة

الخطوة 6 - إنشاء حساب مستخدم OZX لـ SMS API

للسماح لـ C# SMS API بالاتصال ببوابة الرسائل القصيرة، تحتاج إلى إنشاء حساب مستخدم OZX في بوابة الرسائل القصيرة. للقيام بذلك، انتقل إلى وحدة تحكم إدارة بوابة الرسائل القصيرة عن طريق فتح الرابط https://127.0.0.1:9515 وانقر على رابط "إضافة مستخدم/تطبيق جديد" على الجانب الأيمن من الشاشة. (الشكل 7)

إنشاء حساب مستخدم لاستقبال الرسائل النصية
الشكل 7 - إنشاء حساب مستخدم لاستقبال الرسائل النصية في C#

سيظهر رابط "إضافة مستخدم/تطبيق جديد" قائمة بأنواع المستخدمين القابلة للتثبيت. تحتاج إلى العثور على حساب مستخدم OZX في القائمة. يستخدم حساب مستخدم OZX بروتوكول SMS مُحسّن للغاية، مما يسمح لتطبيق C# SMS الخاص بك بالتواصل مع بوابة الرسائل القصيرة عبر الشبكة. نظرًا لأن بوابة الرسائل القصيرة وعميل C# SMS يتواصلان عبر الشبكة، يمكنك استقبال رسالة نصية في مشروع C# الخاص بك حتى إذا كان المشروع يعمل على جهاز كمبيوتر مختلف. (الشكل 8)

تثبيت حساب مستخدم C# SMS API
الشكل 8 - انقر على تثبيت لتثبيت حساب مستخدم C# SMS API (مستخدم OZX)

قم بتوفير اسم مستخدم وكلمة مرور. في مثالنا، نستخدم testuser كاسم مستخدم و testpass ككلمة مرور. سيستخدم عميل C# SMS هذه البيانات للاتصال ببوابة الرسائل القصيرة. إذا كنت ترغب في أكثر من اتصال C# SMS API، يمكنك إنشاء حسابات مستخدم OZX متعددة. سيستضيف كل حساب مستخدم عميل C# SMS API الخاص به. لتحديد أي عميل C# SMS سيستقبل رسالة SMS واردة، تحتاج إلى إنشاء مسارات واردة في جدول توجيه Ozeki للرسائل القصيرة. (الشكل 9)

تعيين testuser كاسم مستخدم لـ C# SMS API
الشكل 9 - تعيين testuser كاسم مستخدم لـ C# SMS API

قم بتمكين خيارات التسجيل لحساب C# SMS API للحصول على سجلات الاتصال. أوصي بتحديد جميع مربعات الاختيار للتسجيل أولاً، حتى تحصل على معلومات مفصلة حول ما يحدث للرسالة. إذا استقبلت رسالة نصية، فستظهر في السجل قبل أن يتم إرسالها إلى عميل C# SMS الخاص بك. (الشكل 10)

تمكين التسجيل لرؤية الرسائل المستلمة قبل وصولها إلى عميل C# SMS
الشكل 10 - تمكين التسجيل لرؤية الرسائل المستلمة قبل وصولها إلى عميل C# SMS

الخطوة 6 - إضافة مسار جديد لمحاكاة رسائل SMS الواردة

قم بإنشاء مسار SMS جديد للسماح للمستخدم المسؤول بإرسال رسائل SMS اختبارية إلى عميل C# SMS API. أحد أفضل الأشياء في استخدام Ozeki SMS Gateway هو أنه يسمح لك بإدارة رسائل SMS الخاصة بك باستخدام جدول التوجيه. يمكنك إعداد اتصالات متنوعة بشبكة الهاتف المحمول ويمكنك تحديد أي رسالة SMS ستذهب إلى أين. في مثالنا، نريد توجيه رسائل SMS القادمة من الحساب المسؤول إلى عميل C# SMS API. في نظام حقيقي، لن تقوم بتوجيه رسائل SMS من الحساب المسؤول، بل ستقوم بتوجيه رسائل SMS المستلمة على اتصالات شبكة الهاتف المحمول إلى عميل C# SMS API الخاص بك.

لإنشاء مسار SMS جديد، انقر على "إضافة مسار جديد" في لوحة تحكم Ozeki SMS Gateway (الشكل 11).

إضافة مسار SMS جديد لعميل C# SMS
الشكل 11 - إضافة مسار SMS جديد

لاستقبال رسالة نصية أثناء كتابة كود C# SMS الخاص بك، ستستخدم نموذج إنشاء الرسائل في بوابة الرسائل القصيرة، وسترسل الرسالة كالمستخدم المسؤول. المسار الذي سنقوم بإنشائه سيوجه رسائل SMS القادمة من المسؤول إلى حساب testuser. سيحول حساب testuser الرسالة إلى عميل C# SMS (الشكل 12).

رسالة SMS من الواجهة الرسومية إلى C#
الشكل 12 - رسالة SMS من المسؤول إلى عميل C#

حدد testuser كوجهة لرسائل SMS الواردة في نموذج تفاصيل التوجيه. سيوجه هذا المسار رسائل SMS من المستخدم المسؤول إلى testuser. سيحول testuser الرسائل المستلمة إلى عميل C# API (الشكل 13).

إنشاء مسار SMS لمحاكاة الرسائل النصية الواردة
الشكل 13 - إنشاء مسار SMS لمحاكاة الرسائل النصية الواردة

الخطوة 7 - بدء مشروع مثال الرسائل القصيرة باستخدام لغة C#

لبدء مشروع الرسائل القصيرة باستخدام لغة C#، تحتاج إلى النقر على زر البدء في شريط أدوات Visual Studio. بعد النقر على هذا الزر، سيقوم Visual Studio بترجمة الكود وتشغيله في بيئة التطوير. سيتم إيقاف تنفيذ البرنامج عندما يصل الخوارزمية إلى نقطة توقف. نظرًا لأن مثالنا هو تطبيق وحدة تحكم، ستظهر نافذة وحدة التحكم السوداء بمجرد بدء التنفيذ. (الشكل 14)

الشكل 14 - بدء مشروع الرسائل القصيرة باستخدام لغة C#

اكتب "help" في نافذة وحدة التحكم. سيظهر نص المساعدة قائمة بالأوامر المتاحة لك في هذا المشروع. أول أمر ستستخدمه هو أمر الاتصال. اكتب "connect 127.0.0.1:9580 testuser testpass" في نافذة وحدة التحكم لتوصيل كود الرسائل القصيرة بلغة C# ببوابة الرسائل القصيرة. لاحظ أن 127.0.0.1 تعني أن بوابة الرسائل القصيرة تعمل على نفس الكمبيوتر الذي يعمل عليه كود الرسائل القصيرة بلغة C#. 9580 هو منفذ TCP/IP الذي تستخدمه بوابة الرسائل القصيرة لقبول عملاء الرسائل القصيرة بلغة C# (مستخدمي OZX)، وبيانات الاعتبار testuser و testpass هي تلك التي حددناها عند إنشاء حساب مستخدم OZX في الخطوة 6 من هذا البرنامج التعليمي للرسائل القصيرة. (الشكل 15)

الشكل 15 - تشغيل تطبيق وحدة تحكم الرسائل القصيرة بلغة C#

بمجرد الاتصال ببوابة الرسائل القصيرة، تكون جاهزًا لإرسال أول رسالة قصيرة إلى عميل API بلغة C#.

الخطوة 8 - إرسال رسالة قصيرة تجريبية

أرسل رسالة قصيرة تجريبية بالنقر على زر "جديد" في شريط أدوات Ozeki في وحدة تحكم إدارة بوابة الرسائل القصيرة. عند إرسال الرسالة القصيرة التجريبية، سيتعين عليك تحديد عنوان المستلم ونص الرسالة. في صفحة علامة التبويب "متقدم"، يمكنك أيضًا تحديد هوية المرسل، مثل هوية مرسل أبجدية رقمية للرسائل القصيرة. (الشكل 16)

رسالة قصيرة تجريبية على وشك الاستلام
الشكل 16 - إنشاء الرسالة القصيرة التجريبية على وشك الاستلام

انقر فوق موافق لإرسال الرسالة القصيرة التجريبية. ستوفر لك بوابة الرسائل القصيرة الأحداث المتعلقة بإرسال الرسالة القصيرة، وسيتم تقديم معرف الرسالة لك. قد تلاحظ سلسلة GUID في السطر الأخير من الشكل 17.

معرف الرسالة القصيرة لاستخدامه في واجهة برمجة تطبيقات الرسائل القصيرة بلغة C#
الشكل 17 - معرف الرسالة القصيرة لاستخدامه في واجهة برمجة تطبيقات الرسائل القصيرة بلغة C#

بعد إرسال الرسالة القصيرة من قبل المستخدم المسؤول، يتم استلامها من قبل حساب مستخدم OZX المسمى testuser. يقوم هذا الحساب بإعادة توجيه الرسالة القصيرة إلى عميل الرسائل القصيرة بلغة C# عبر الشبكة. يستقبل عميل الرسائل القصيرة بلغة C# النص عبر اتصال TCP/IP الذي أنشأه طريقة الاتصال. إذا قمت بتعيين نقطة توقف في حدث OnMessageReceived، فهذا هو الوقت الذي ستوقف فيه نقطة التوقف تنفيذ البرنامج.

الخطوة 9 - استلام الرسائل القصيرة في وحدة تحكم C#

اقرأ سطر الرسالة المستلمة في وحدة تحكم C#. ستلاحظ أن الرسالة القصيرة أرسلت من admin@localhost إلى رقم الهاتف +361111111. استقبل عميل واجهة برمجة تطبيقات الرسائل القصيرة بلغة C# النص 'Hello c sharp client' (الشكل 18). تم تقديم الرسالة النصية إلى عميل C# في شكل حدث C#. يتم استدعاء معالج حدث OnMessageReceived عند حدوث هذا الحدث، وتم وضع الرسالة في معلمة الإدخال لطريقة معالج حدث OzMessageReceived.

استلام الرسائل القصيرة في وحدة تحكم C#
الشكل 18 - استلام الرسائل القصيرة في وحدة تحكم C#

الشيء التالي الذي تريد القيام به هو الاطلاع على السجل في بوابة الرسائل القصيرة.

الخطوة 10 - عرض السجلات في بوابة الرسائل القصيرة

افتح صفحة تفاصيل testuser بالنقر على رابط testuser في لوحة تحكم بوابة Ozeki للرسائل القصيرة. سيأخذنا هذا إلى سجل أحداث حساب testuser. في سجل الأحداث هذا، نتوقع رؤية الاتصال الذي يتم بين عميل الرسائل القصيرة بلغة C# وبوابة الرسائل القصيرة. كما نتوقع رؤية الرسالة القصيرة المستلمة في سجل الاتصال. (الشكل 19)

الشكل 19 - افتح صفحة تفاصيل testuser

حدد موقع السطر "Received." في علامة تبويب أحداث testuser. ستشاهد الرسالة القصيرة التي استلمها عميل الرسائل القصيرة بلغة C# في هذا السطر. يمكنك رؤية تاريخ ووقت الحدث، ويمكنك رؤية تفاصيل الرسالة. أسفل إدخال السجل المقروء، ستشاهد سجل اتصال بروتوكول OZX. يسمح لك هذا السجل بتصحيح الأخطاء في حالة حدوث أي مشكلة. (الشكل 20)

الشكل 20 - تحقق من الرسالة القصيرة الواردة في حساب المستخدم المرتبط بواجهة برمجة تطبيقات الرسائل القصيرة بلغة C#

استقبال رسالة نصية من شبكة الهاتف المحمول

في الخطوات السابقة قمنا بمحاكاة رسالة واردة. قام المستخدم المسؤول بإرسال رسالة تم توجيهها إلى مثال C# لاستقبال الرسائل القصيرة. الخطوة التالية هي توصيل النظام بشبكة الهاتف المحمول. لديك عدة خيارات للقيام بذلك. يمكنك الاتصال بمزود خدمة الرسائل القصيرة عبر الإنترنت باستخدام بوابة Ozeki 10 للرسائل القصيرة على هاتفك الأندرويد واستخدام اتصال الرسائل القصيرة المدمج في بوابة الرسائل القصيرة للأندرويد. (الشكل 21)

الشكل 21 - استقبال رسالة نصية عبر هاتف أندرويد

لجعل الحل المذكور أعلاه يعمل مع هاتف أندرويد، كل ما عليك فعله هو إنشاء مسار وارد في جدول توجيه الرسائل القصيرة الخاص بـ Ozeki. تحتاج إلى إنشاء هذا المسار بين اتصال شبكة الهاتف المحمول ومستخدم واجهة برمجة تطبيقات الرسائل القصيرة في C# (testuser). للعثور على أفضل طريقة اتصال بشبكة الهاتف المحمول لمشروعك، راجع دليلنا كيفية توصيل بوابة الرسائل القصيرة بشبكة الهاتف المحمول. (الشكل 22)

الشكل 22 - جدول توجيه استقبال الرسائل القصيرة

خلاصة القول

كانت هذه قائمة تعليمات طويلة ومفصلة جدًا لمساعدتك في البدء بتطوير مشروع C# للرسائل القصيرة يمكنه استقبال الرسائل النصية. إذا بدأت باستخدام هذا الحل، ستكتشف سريعًا أن هذا الحل مثالي إذا كنت ترغب في استقبال الرسائل النصية بسرعة عبر اتصالات متنوعة بشبكة الهاتف المحمول. يعمل هذا الحل سواء كنت ترغب في استقبال الرسائل القصيرة عبر هاتف أندرويد أو عبر رابط رسائل قصيرة عبر IP، مثل اتصال عميل SMPP.

More information