كيفية جدولة رسالة SMS في F#
أبسط طريقة لإرسال رسائل SMS من F# هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود F# لإرسال رسالة SMS مجدولة إلى الهاتف المحمول
يوضح مثال كود F# لإرسال الرسائل القصيرة أدناه كيفية إرسال الرسائل القصيرة باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام مكتبة Ozeki.Libs.Rest في F#. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
Program.fsopen System open Ozeki.Libs.Rest [<EntryPoint>] let main argv = let configuration = new Configuration ( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api") let msg = new Message( ToAddress = "+36201111111", Text = "Hello, World!", TimeToSend = DateTime.Parse("2021-06-07 11:44:00")) let api = new MessageApi(configuration) let result = api.Send(msg) printfn $"{result.ToString()}" 0
كيفية استخدام مثال F# لإرسال الرسائل القصيرة:
يمكن استخدام مثال F# لإرسال الرسائل القصيرة في أي تطبيق .NET أو .NET core. لاستخدامه، يجب عليك إضافة ملف Ozeki.Libs.Rest.dll كمرجع إلى مشروعك. بعد إضافة المرجع، يجب وضع التوجيه using Ozeki.Libs.Rest; في قسم الرأس الخاص بـ كود F# المصدر. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تنزيل SendScheduledSms.fs
يمكن تنزيل الكود المصدري الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: SendScheduledSms.fs.zip (59.8Kb)
ما الموجود في ملف SendScheduledSms.fs؟
يحتوي ملف SendScheduledSms.fs على مكتبة Ozeki.Libs.Rest، والتي توفر لك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا مشروع SendScheduledSms في ملف zip، والذي يحتوي على الكود المثال ليوضح لك كيفية إرسال رسالة SMS. هذا الكود المثال مدرج أدناه.
كيفية إرسال رسالة SMS من F# (خطوات سريعة)
لإرسال رسالة SMS من F#:
- قم بتثبيت بوابة Ozeki SMS
- قم بتوصيل بوابة Ozeki SMS بشبكة الهاتف المحمول
- أرسل رسالة SMS تجريبية من واجهة Ozeki
- قم بإنشاء مستخدم لواجهة برمجة تطبيقات HTTP لإرسال الرسائل القصيرة
- ابدأ تشغيل Visual Studio
- قم بإنشاء مشروع يسمى SendScheduledSms.sln
- أضف مشروع وحدة تحكم F#: SendScheduledSms.fsproj
- ضع الكود في Program.fs أو SendScheduledSms.fs
- اقرأ استجابة HTTP
- تحقق من السجلات في بوابة الرسائل القصيرة
قم بتثبيت بوابة Ozeki SMS وأنشئ مستخدمًا لواجهة برمجة تطبيقات HTTP
لتتمكن من إرسال رسائل SMS من F#، تحتاج أولاً إلى إنشاء مستخدم لواجهة برمجة تطبيقات HTTP لإرسال الرسائل القصيرة. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود F# الخاص بك.
رابط واجهة برمجة تطبيقات HTTP لإرسال رسائل SMS من F#
لإرسال رسائل SMS من F#، سيتعين على كود F# الخاص بك إرسال طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط واجهة برمجة التطبيقات أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة. إذا تم تثبيت بوابة Ozeki SMS على نفس الكمبيوتر الذي يعمل عليه تطبيق F# لإرسال الرسائل القصيرة، يمكن أن يكون هذا 127.0.0.1. إذا تم تثبيته على كمبيوتر مختلف، فيجب أن يكون عنوان IP الخاص بهذا الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لإرسال رسائل SMS من F#
لمصادقة عميل F# لإرسال الرسائل القصيرة، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ 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 لإرسال رسائل SMS من F#
لإرسال رسائل SMS، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا ندرج نوع المحتوى ورأس المصادقة.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
طلب HTTP لإرسال رسائل SMS مجدولة من F#
لإرسال الرسالة النصية، سيقوم تطبيق F# الخاص بك بإرسال طلب 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": "d51ca3ba-4159-4dee-8541-106f8df76f91", "to_address": "+36201111111", "text": "Hello, World!", "create_date": "2021-06-11 14:09:22", "valid_until": "2021-06-18 14:09:22", "time_to_send": "2021-06-11 14:44:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
استجابة HTTP المستلمة من مثال F# لرسائل SMS
بمجرد استلام بوابة الرسائل القصيرة لهذا الطلب، ستقوم بإنشاء استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة للإشارة إلى ما إذا كان طلب إرسال الرسالة قد نجح أم لا. كما ستعود أيضًا بهيكل مشفر بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.118 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 08:44:45 GMT Server: 10/10.3.118 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "04682902-5360-4189-8082-ab455433d141", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World!", "create_date": "2021-06-11 14:09:22", "valid_until": "2021-06-18 14:09:22", "time_to_send": "2021-06-11 14:44:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
مثال F# لرسائل SMS: SendScheduledSms.sln
كيفية تنزيل ملف المشروع من صفحة التنزيل (فيديو تعليمي)
في هذا الفيديو، ستتعلم كيفية تنزيل مشروع F# المثال. يبدأ الفيديو بصفحة التنزيل وينتهي بالمشروع المفتوح. ستتعلم كيفية تنزيل المشروع وما يجب فعله بعد ذلك. يبلغ طول الفيديو دقيقة واحدة فقط ولكنه مفيد جدًا. بفضل هذه التفاصيل، لن تواجه أي مشكلة في اتباع الخطوات.
كود المثال أدناه هو جزء من حل Visual Studio SendScheduledSms.sln. يمكن أن يحتوي حل Visual Studio على مشاريع متعددة وملفات متعددة. في هذا الحل هناك مشروع واحد فقط: SendScheduledSms.fsproj، وملف واحد: Program.fs.
كيفية استخدام مشروع الرسائل المجدولة (فيديو تعليمي)
في هذا الفيديو، ستتعلم كيفية استخدام المشروع لإرسال رسائل SMS مجدولة. سيبدأ الفيديو بفتح بوابة Ozeki SMS وسيأخذك حتى التحقق من مجلد المؤجل المليء بالرسائل. يبلغ طول الفيديو 1:26 دقيقة وهو مفصل جدًا. بفضل ذلك، لن تواجه أي مشكلة في اتباع البرنامج التعليمي.
تشغيل مثال F# لرسائل SMS على Windows
عند استخدام Windows لتشغيل مثال رسائل SMS هذا المكتوب بلغة F#، ستلاحظ أنك تحصل على أداء أفضل قليلاً مقارنة بتشغيله على Linux. لفهم سبب حدوث ذلك، يجب أن تضع في اعتبارك أن F# تستخدم إطار عمل .NET لتنفيذ الكود. هذا لأن تنفيذ .NET على Windows مُحسّن للأداء، بينما mono، وهو تنفيذ .NET على Linux، لا يزال بحاجة إلى اللحاق بهذا المجال.
الختام
شرحت المقالة خطوات جدولة الرسائل النصية في F# بمساعدة بوابة Ozeki SMS. تعد جدولة الرسائل النصية أداة مفيدة جدًا إذا كنت تريد التأكد من تجنب رسائلك ساعات الذروة للمستلمين، حتى لا يتم تجاهل الرسائل أو نسيانها. تسمح بوابة Ozeki SMS بتسجيل رسائل SMS في قاعدة بيانات وتوفر إمكانيات تقارير متنوعة لتوفير معلومات حول اتصال SMS.
لا تتوقف عن دراستك هنا، قم بزيارة صفحة البرامج التعليمية لـ Ozeki حيث يمكنك قراءة المزيد حول مواضيع مثل حذفها في F#.
الآن الشيء الوحيد المتبقي هو تنزيل بوابة Ozeki SMS وليبدأ العمل!
More information
- كيفية إرسال SMS من F#
- كيفية إرسال عدة رسائل SMS من F#
- جدولة SMS باستخدام F# مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- استقبال SMS باستخدام F# مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- حذف SMS باستخدام F# مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- Github: F# SMS API
- مكتبة NuGet لإرسال SMS باستخدام F#