كيفية إرسال رسالة SMS من لغة C#
أبسط طريقة لإرسال رسائل SMS من لغة C# هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK إلى طلبك. (الشكل 1)
كود C# لإرسال رسالة SMS إلى الهاتف المحمول
يوضح مثال كود C# لإرسال SMS أدناه كيفية إرسال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام مكتبة Ozeki.Libs.Rest في لغة C#. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendSms { class Program { static void Main(string[] args) { var configuration = new Configuration() { Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" }; var msg = new Message() { ToAddress = "+36201111111", Text = "Hello, World!" }; var api = new MessageApi(configuration); var result = api.Send(msg); Console.WriteLine(result); Console.ReadKey(); } } }
كيفية استخدام مثال C# لإرسال SMS:
يمكن استخدام هذا مثال C# لإرسال SMS في أي تطبيق .NET أو .NET core. لاستخدامه، يجب عليك إضافة ملف Ozeki.Libs.Rest.dll كمرجع إلى مشروعك. بعد إضافة المرجع، يجب وضع توجيه using Ozeki.Libs.Rest; في قسم الرأس من كود المصدر C# الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendSMS.cs
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendSms.cs.zip (33.3 كيلوبايت)
ما الموجود في ملف SendSms.cs.zip؟
يحتوي ملف SendSms.cs.zip على مكتبة Ozeki.Libs.Rest، والتي تمنحك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا مشروع SendSms في الملف المضغوط، والذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. تم سرد كود المثال هذا أدناه. (الشكل 2)
كيفية إرسال رسالة SMS من لغة C# (إرشادات بسيطة)
لإرسال رسالة SMS من لغة C#:
- قم بتثبيت مستخدم HTTP API
- قم بتمكين تسجيل أحداث الاتصال في علامة التبويب المتقدم
- قم بإعداد Visual Studio
- قم بتنزيل ثم استخراج ملف SendSms.cs.zip
- افتح ملف SendSms.sln في Visual Studio
- قم بتشغيل تطبيق Ozeki SMS Gateway
- قم بتشغيل كود Program.cs بلغة C# في Visual Studio
- تحقق من السجلات لمعرفة ما إذا تم إرسال الرسالة القصيرة
قم بتثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API
لتتمكن من إرسال رسائل SMS من لغة C#، تحتاج أولاً إلى إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود C# الخاص بك.
رابط HTTP API لاستخدام إرسال SMS من لغة C#
لإرسال رسائل SMS من لغة C#، سيتعين على كود C# الخاص بك إرسال طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة لديك. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر الذي يعمل عليه تطبيق C# لإرسال الرسائل القصيرة، فيمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لذلك الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لاستخدام إرسال SMS من لغة C#
لمصادقة عميل C# لإرسال الرسائل القصيرة، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في لغة C#، يمكنك استخدام الكود التالي لإجراء هذا التشفير:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
على سبيل المثال، إذا قمت بتشفير اسم المستخدم 'http_user' وكلمة المرور 'qwe123'، فستحصل على السلسلة المشفرة base64 التالية: aHR0cF91c2VyOnF3ZTEyMw==. للإرسال
رأس طلب HTTP لإرسال الرسائل القصيرة من C#لإرسال الرسائل القصيرة، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا ندرج نوع المحتوى ورأس التفويض.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
طلب HTTP لإرسال الرسائل القصيرة من C#
لإرسال الرسالة القصيرة، سيقوم تطبيق C# الخاص بك بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يتضمن جزءًا من رأس HTTP وجزءًا من نص HTTP. نص HTTP هو سلسلة بيانات مشفرة بتنسيق JSON. يحتوي على رقم المستلم ونص الرسالة.
POST /api?action=sendmsg HTTP/1.1 Connection: Keep-Alive Content-Length: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "to_address": "+36201111111", "text": "مرحبًا بالعالم!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
استجابة HTTP المستلمة من مثال الرسائل القصيرة في C#
بمجرد أن يستقبل بوابة الرسائل القصيرة هذا الطلب، سوف يولد استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة، للإشارة إلى ما إذا كان طلب إرسال الرسالة القصيرة ناجحًا أم لا. كما ستعود ببنية مشفرة بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 11:17:49 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "تمت إضافة الرسائل إلى قائمة الانتظار للتسليم.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "مرحبًا بالعالم!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
قم بتوصيل بوابة الرسائل القصيرة الخاصة بك بشبكة الهاتف المحمول وأنشئ حساب مستخدم لـ HTTP API
نفترض أنك قمت بالفعل بتثبيت بوابة Ozeki للرسائل القصيرة، وقمت بتوصيلها بشبكة الهاتف المحمول. لكي تتمكن من إرسال رسائل قصيرة إلى هاتف محمول من C#، تحتاج إلى إعداد حساب مستخدم لـ HTTP API في بوابة Ozeki للرسائل القصيرة.
إنشاء مستخدم جديد (فيديو تعليمي)
يعرض لك هذا الفيديو كيفية إعداد حساب مستخدم جديد لـ HTTP API. سيبدأ من الصفحة الرئيسية لـ بوابة Ozeki للرسائل القصيرة وسينتهي بعلامة تبويب الأحداث للمستخدم الجديد. سيوضح لك الفيديو كيفية إنشاء وتكوين المستخدم الجديد. الشيء الرائع في هذا الفيديو هو أنه لا يستغرق سوى 30 ثانية ولكنه يحتوي على جميع المعلومات التي تحتاجها لإنشاء مستخدم جديد لـ HTTP API.
كيفية إرسال الرسائل القصيرة من C# باستخدام واجهة برمجة تطبيقات الرسائل القصيرة في C# (فيديو تعليمي)
يُظهر لك هذا الفيديو كيفية تنزيل ملف SendSms.cs.zip من هذه الصفحة، وكيفية تنزيل محتوياته في Visual Studio. إذا شاهدت الفيديو، ستلاحظ أن محتويات ملف SendSms.cs المضغوط توضع على سطح مكتب Windows. ستلاحظ أيضًا أننا نضغط مرتين على ملف الحل SendSms.sln لفتح الحل. سيعرض Visual Studio بعض التحذيرات لأن الملف قادم من الويب. ما عليك سوى النقر فوق موافق لـ تجنب هذه التحذيرات.
مثال الرسائل القصيرة في C#: SendSms.sln
كود المثال أدناه هو جزء من حل Visual Studio SendSms.sln. يمكن أن يحتوي حل Visual Studio على مشاريع متعددة وملفات متعددة. في هذا الحل هناك مشروع واحد فقط: SendSms.csproj، وملف واحد: Program.cs.
كيفية التحقق من قبول الرسالة النصية من قبل مستخدم HTTP (فيديو تعليمي)
بعد إرسال الرسالة النصية، من الجيد التحقق من بوابة الرسائل النصية الخاصة بك، لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة بوابة Ozeki للرسائل النصية. يوضح الفيديو التالي ما الذي تبحث عنه. سيبدأ الفيديو بالكود المفتوح وسينتهي بتفاصيل الرسالة المرسلة. ستتعلم كيفية تشغيل المشروع، وكيف يبدو المشروع أثناء التشغيل، وكيف يبدو ملف السجل بعده. يبلغ طول الفيديو 42 ثانية فقط وسهل الفهم. لن تواجه أي مشكلة في متابعته.
كيفية التحقق من إرسال الرسالة النصية إلى شبكة الهاتف المحمول
الخطوة الأخيرة في التحقق من الإجراء هي النظر إلى سجلات اتصال شبكة الهاتف المحمول. قد تحتاج إلى تفعيل التسجيل في إعدادات الاتصال قبل إرسال الرسالة لرؤية السجلات. إذا كان التسجيل مفعلاً، سترى رقم الهاتف ونص الرسالة التي أرسلتها.
اختبار ما إذا كان الطلب مقبولاً (فيديو تعليمي)
في الفيديو التالي، سترى كيفية التحقق مما إذا كان عميل SMPP قد نجح في إرسال رسالتك. ستتعلم كيفية فتح تبويب الأحداث لمستخدم SMPP وما الذي تبحث عنه. يبلغ طول الفيديو 18 ثانية فقط ولكنه سيكون مفيداً جداً.
استلام الرسالة النصية على الهاتف (فيديو تعليمي)
في الفيديو التالي، سترى كيف تبدو الرسالة الواردة التي تم إرسالها من بوابة Ozeki للرسائل النصية. سيبدأ بشاشة رئيسية لهاتف أندرويد وسينتهي بفتح الرسالة. يبلغ طوله 18 ثانية فقط ويمكنك رؤية عملية استلام الرسالة بالكامل.
تشغيل مثال الرسائل النصية بـ C# على ويندوز
عند استخدام ويندوز لتشغيل مثال الرسائل النصية المكتوب بـ C#، ستلاحظ أنك تحصل على أداء أفضل قليلاً مقارنة بتشغيله على لينكس. لفهم سبب حدوث ذلك، يجب أن تضع في اعتبارك أن C# تستخدم إطار عمل .NET لتنفيذ الكود. هذا لأن تنفيذ .NET على ويندوز مُحسّن للأداء، بينما mono، وهو تنفيذ .NET على لينكس، ما زال يحتاج إلى اللحاق في هذا المجال.
ملخص
شرح الدليل أعلاه خطوات إرسال الرسائل النصية من C#. كما يمكن رؤيته، يوفر لك Ozeki جميع الأدوات اللازمة في تسليم الرسائل، لذا إذا تم اتباع الخطوات بعناية، فإن إرسال الرسائل من C# لم يعد مشكلة. تلعب بوابة Ozeki للرسائل النصية دوراً هائلاً في التسليم، حيث لا يمكنك الوصول إلى مستخدمي الهواتف المحمولة بدون هذا البرنامج. من المهم ملاحظة أن بوابة Ozeki للرسائل النصية تعمل في أي بلد، لذا يمكن إرسال الرسائل دولياً باستخدام هذا الحل.
لا تنهي القراءة هنا، تصفح صفحة البرامج التعليمية لـ Ozeki وتعلم عن استلام الرسائل النصية في C#.
الشيء التالي الذي يجب عليك فعله هو تحميل بوابة Ozeki للرسائل النصية وابدأ العمل!
More information