كيفية إرسال رسائل SMS متعددة من C#
أبسط طريقة لإرسال رسائل SMS من C# هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في Ozeki SMS Gateway. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إصدار طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود C# لإرسال رسائل SMS متعددة إلى الهاتف المحمول
يوضح مثال كود C# للرسائل القصيرة أدناه كيفية إرسال الرسائل القصيرة باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة بـ Ozeki SMS Gateway باستخدام مكتبة Ozeki.Libs.Rest في C#. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendMultipleSms { 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 msg1 = new Message() { ToAddress = "+36201111111", Text = "Hello, World 1" }; var msg2 = new Message() { ToAddress = "+362222222", Text = "Hello, World 2" }; var msg3 = new Message() { ToAddress = "+363333333", Text = "Hello, World 3" }; var api = new MessageApi(configuration); var result = api.Send(new Message[]{ msg1, msg2, msg3 }); Console.WriteLine(result); Console.ReadKey(); } } }
كيفية استخدام مثال C# للرسائل القصيرة:
يمكن استخدام مثال C# للرسائل القصيرة هذا في أي تطبيق .NET أو .NET core. لاستخدامه، يجب عليك إضافة ملف Ozeki.Libs.Rest.dll كمرجع إلى مشروعك. بعد إضافة المرجع، يجب وضع التوجيه using Ozeki.Libs.Rest; في قسم الرأس من كود المصدر C# الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendSMS.cs
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendMultipleSms.cs.zip (34.5Kb)
ما الموجود في ملف SendMultipleSms.cs؟
يحتوي ملف SendMultipleSms.cs على مكتبة Ozeki.Libs.Rest، والتي تمنحك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا مشروع SendMultipleSms في ملف zip، والذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. تم سرد كود المثال هذا أدناه.
كيفية إرسال رسائل SMS متعددة من C# (خطوات سريعة)
لإرسال رسائل SMS متعددة من C#:
- قم بإعداد Visual Studio Community
- قم بتنزيل ملف Send-multiple-SMS.cs.zip
- استخراج ملف .zip من مجلد التنزيلات
- افتح ملف SendMultipleSms.sln في Visual Studio
- تشغيل Ozeki SMS Gateway
- إنشاء مستخدم HTTP API في Ozeki
- تشغيل كود Program.cs في Visual Studio لإرسال رسائل SMS تجريبية
- تحقق من صندوق المرسلات في Ozeki SMS Gateway
تثبيت 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 لإرسال الرسائل القصيرة من 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: 979 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9511 { "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "to_address": "+362222222", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "to_address": "+363333333", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "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 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "from_station": "%", "to_address": "+362222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "from_station": "%", "to_address": "+363333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
مثال C# للرسائل القصيرة: SendMultipleSms.sln
كيفية تنزيل مشروع SendMultipleSMS.sln (فيديو تعليمي)
في الفيديو التالي، ستتعلم كيفية استخدام مشروع SendMultipleSMS.sln بلغة C#. سيبدأ الفيديو بصفحة التنزيل وسيأخذك حتى لوحة محرر الأكواد المفتوحة. ستتعلم كيفية تنزيل وفتح ملف الكود. يبلغ طول الفيديو 54 ثانية فقط ولكنه يحتوي على جميع المعلومات الضرورية لاستخدام ملف الكود المثال بنجاح.
كود المثال أدناه هو جزء من حل Visual Studio SendMultipleSms.sln. يمكن أن يحتوي حل Visual Studio على مشاريع وملفات متعددة. في هذا الحل يوجد مشروع واحد فقط: SendMultipleSms.csproj، وملف واحد: Program.cs.
كيفية استخدام المشروع (فيديو تعليمي)
في المقطع التالي، ستشاهد كيفية تشغيل كود C# SendMultipleSMS.cs. سيبدأ الفيديو بالكود المفتوح وسيأخذك حتى علامة تبويب الأحداث مع سجل الرسالة المرسلة. سترى كيفية تشغيل الكود وما يحدث إذا تم تنفيذ الكود. يبلغ طول الفيديو أقل من دقيقة بقليل ولكنه يحتوي على جميع المعلومات الضرورية لتشغيل المشروع.
تشغيل مثال SMS بلغة C# على Windows
عند استخدام Windows لتشغيل مثال SMS هذا المكتوب بلغة C#، ستلاحظ أنك تحصل على أداء أفضل قليلاً مقارنة بتشغيله على Linux. لفهم سبب حدوث ذلك، يجب أن تضع في اعتبارك أن C# تستخدم إطار عمل .NET لتنفيذ الكود. هذا لأن تنفيذ .NET على Windows مُحسّن للأداء، بينما mono، وهو تنفيذ .NET على Linux، لا يزال بحاجة إلى اللحاق بهذا المجال.
الختام
عرضت هذه المقالة خطوات إرسال رسائل SMS متعددة في طلب واحد من لغة C#. بهذه المعرفة والأدوات المقدمة، يجب أن تكون قادرًا على الوصول إلى عدة عملاء بكود واحد. يلعب Ozeki SMS Gateway دورًا مهمًا في هذه العملية لأن هذا البرنامج ينظم تسليم الرسائل. يعمل Ozeki SMS Gateway بجودة وأداء عاليين، مما يسمح لك بإرسال ما يصل إلى 1000 رسالة SMS في الثانية.
تواصل تعلمك في صفحات البرامج التعليمية لـ Ozeki، حيث يمكنك قراءة مواضيع مثل جدولة SMS و الحذف بلغة C#.
الآن كل ما عليك فعله هو تنزيل Ozeki SMS Gateway والبدء في العمل!
More information