كيفية إرسال رسائل SMS من Scala

أسهل طريقة لإرسال رسائل SMS من Scala هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في Ozeki SMS Gateway. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة الرسائل. سيحتوي طلب HTTP Post على رسالة بتنسيق json. ستقوم بوابة الرسائل بإرسال هذه الرسالة إلى هاتف المستلم، وستعيد رد HTTP 200 OK إلى طلبك.

كيفية إرسال رسائل SMS من Scala
الشكل 1 - كيفية إرسال رسائل SMS من Scala

كود Scala لإرسال رسائل SMS إلى الهاتف المحمول

عينة كود Scala لإرسال SMS أدناه توضح كيف يمكنك إرسال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة بـ Ozeki SMS Gateway مع مكتبة Ozeki.Libs.Rest لـ Scala. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.

SendSms.scala
import Ozeki.Libs.Rest.{ Configuration, Message, MessageApi }


object main  {
  def main(args: Array[String]): Unit = {
      
    val configuration = Configuration(
      Username = "http_user",
      Password = "qwe123",
      ApiUrl = "http://127.0.0.1:9509/api"
    )

    val msg = Message(
        ToAddress = "+36201111111",
        Text = "Hello world!"
    )

    val api = MessageApi(configuration)

    val result = api.Send(msg)

    println(result)
  }
}
	

الكود 1 - SendSms.scala

كيفية استخدام مثال Scala لإرسال SMS:

يمكن استخدام مثال Scala لإرسال SMS في أي تطبيق Scala. لاستخدامه، يجب عليك تنزيل مكتبة Ozeki.Libs.Rest. بعد تنزيل المكتبة، تحتاج إلى إضافة مرجع إليها في كود المصدر الخاص بـ Scala. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة. يمكنك استخدام فئة MessageApi لإرسال الرسالة إلى بوابة الرسائل. ستقوم بوابة الرسائل بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.

تنزيل SendSms.scala

يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: SendSms.scala.zip (96.4Kb)

ما الموجود في ملف SendSms.scala.zip؟

في ملف SendSms.scala.zip ستجد مشروع InteliJ مع مجلد مصدر وفي مجلد المصدر (src) يمكنك العثور على مكتبة Ozeki.Libs.Rest وملف main.scala، الذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. كود المثال مدرج أدناه.

الشكل 2 - ما الموجود داخل SendSms.scala.zip

كيفية إرسال رسائل SMS من Scala (إرشادات بسيطة)

لإرسال رسائل SMS من Scala:

  1. تثبيت مستخدم HTTP API
  2. تمكين تسجيل أحداث الاتصال في علامة التبويب المتقدمة
  3. إعداد Visual Studio
  4. تنزيل ثم استخراج ملف SendSms.scala.zip
  5. فتح مشروع SendSms.scala باستخدام InteliJ IDE
  6. تشغيل تطبيق Ozeki SMS Gateway
  7. تشغيل كود SendSend.scala في Scala عن طريق تنفيذه في IntelliJ IDE
  8. التحقق من السجلات لمعرفة ما إذا تم إرسال الرسالة
تثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API

لتتمكن من إرسال رسائل SMS من Scala، تحتاج أولاً إلى إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.

بعد إعداد البيئة، يمكنك تشغيل كود Scala الخاص بك.

رابط HTTP API لاستخدامه في إرسال رسائل SMS من Scala

لإرسال رسائل SMS من Scala، سيتعين على تطبيق Scala إصدار طلب HTTP إلى بوابة الرسائل. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر حيث يعمل تطبيق Scala لإرسال الرسائل، يمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لذلك الكمبيوتر.

http://127.0.0.1:9509/api?action=rest
	
مصادقة HTTP لاستخدامها في إرسال رسائل SMS من Scala

لمصادقة عميل Scala لإرسال الرسائل، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في Scala يمكنك استخدام الكود التالي لإجراء هذا التشفير:

val usernamePassword = "%s:%s".format(Username, Password).getBytes()
val usernamePasswordEncoded = Base64.getEncoder.encodeToString(usernamePassword)
"Basic %s".format(usernamePasswordEncoded)
	

على سبيل المثال، إذا قمت بتشفير اسم المستخدم 'http_user' وكلمة المرور 'qwe123'، ستحصل على السلسلة المشفرة بـ base64 التالية: aHR0cF91c2VyOnF3ZTEyMw==. للإرسال

رأس طلب HTTP لإرسال رسائل SMS من Scala

لإرسال رسائل SMS، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا ندرج نوع المحتوى ورأس المصادقة.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

طلب HTTP لإرسال رسالة SMS من Scala

لإرسال الرسالة القصيرة، سيقوم تطبيق Scala الخاص بك بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يتضمن جزءًا من رأس HTTP وجزءًا من نص HTTP. نص HTTP هو سلسلة بيانات مشفرة بتنسيق JSON. يحتوي على رقم المستلم ونص الرسالة.

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 327
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1

{
	"messages": [
		{
			"message_id":"2f8aa62a-bdad-436b-a824-2aba0a79c39f",
			"to_address":"+36201111111",
			"text":"Hello world!",
			"create_date":"2021-07-15T08:59:28",
			"valid_until":"2021-07-22T08:59:28",
			"time_to_send":"+1000000000-01-01T00:00:00",
			"submit_report_requested":true,
			"view_report_requested":true,
			"delivery_report_requested":true
		}
	]
}
	

استجابة HTTP المستلمة من مثال SMS في Scala

بمجرد أن يتلقى بوابة الرسائل القصيرة هذا الطلب، سيقوم بإنشاء استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة، للإشارة إلى ما إذا كان طلب إرسال الرسالة القصيرة ناجحًا أم لا. كما ستعود أيضًا ببنية مشفرة بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Thu, 15 Jul 2021 08:08:03 GMT
Server: 10/10.3.123
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": "2f8aa62a-bdad-436b-a824-2aba0a79c39f",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-15 08:59:28",
	      "valid_until": "2021-07-22 08:59:28",
	      "time_to_send": "2021-07-15 08:59:28",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

قم بتوصيل بوابة الرسائل القصيرة الخاصة بك بشبكة الهاتف المحمول وأنشئ حساب مستخدم HTTP API

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

الفيديو 1 - كيفية إعداد حساب مستخدم HTTP API (فيديو تعليمي)

كيفية إرسال رسائل SMS من Scala باستخدام Scala SMS API (فيديو تعليمي)

يعرض لك هذا الفيديو كيفية تنزيل ملف SendSms.scala.zip من هذه الصفحة. إذا شاهدت الفيديو، ستلاحظ أن محتويات ملف SendSms.scala المضغوط يتم وضعها على سطح مكتب Windows. سترى أيضًا أننا نقوم بتشغيل موجه الأوامر لإرسال الرسالة القصيرة.

الفيديو 2 - كيفية إرسال رسائل SMS من Scala باستخدام Scala SMS API (فيديو تعليمي)

مثال SMS في Scala: SendSms.scala

كود المثال أدناه هو جزء من ملف SendSms.scala.

كود مثال لإرسال رسائل SMS باستخدام Scala
الشكل 3 - ملف SendSms.scala

كيفية التحقق من قبول الرسالة القصيرة من قبل مستخدم HTTP

بعد إرسال الرسالة القصيرة، من الجيد التحقق من بوابة الرسائل القصيرة الخاصة بك، لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة Ozeki SMS Gateway. يوضح لك الفيديو التالي ما الذي تبحث عنه.

الفيديو 3 - كيفية التحقق من قبول الرسالة القصيرة من قبل مستخدم HTTP (فيديو تعليمي)

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

الخطوة الأخيرة في التحقق من الإجراء هي إلقاء نظرة على سجلات اتصال شبكة الهاتف المحمول. قد تحتاج إلى تشغيل التسجيل في إعدادات الاتصال قبل إرسال الرسالة لرؤية السجلات. إذا تم تمكين التسجيل، فسترى رقم الهاتف والنص الرسالة التي أرسلتها.

الفيديو 4 - كيفية التحقق من إرسال الرسالة القصيرة إلى شبكة الهاتف المحمول (فيديو تعليمي)

استقبال رسالة SMS على هاتف Android

في هذا الفيديو، سترى كيف يبدو استقبال رسالة SMS على هاتف Android. سيبدأ الفيديو بصفحة رئيسية عادية لهاتف Android، وسترى كيف تظهر إشعار الرسالة النصية وكيف يمكنك فتح الرسالة الكاملة. يبلغ طول الفيديو 18 ثانية فقط ويستحق المشاهدة لأنك سترى عملية استقبال الرسالة النصية بالكامل.

الفيديو 5 - كيف يبدو استقبال رسالة SMS على الهاتف المحمول (درس تعليمي بالفيديو)

ملخص

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

تابع القراءة على صفحة البرامج التعليمية لـ Ozeki، حيث يمكنك العثور على المزيد من المقالات المثيرة حول مواضيع مثل جدولة الرسائل النصية في Scala.

الشيء الوحيد المتبقي الآن هو تحميل بوابة Ozeki للرسائل النصية والبدء في العمل!

More information