كيفية جدولة رسالة SMS في Scala

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

كيفية جدولة رسالة sms في scala
الشكل 1 - كيفية جدولة رسالة SMS في Scala

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

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

SendScheduledSms.scala
import Ozeki.Libs.Rest.{Configuration, Message, MessageApi}
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter


object main  {
  def main(args: Array[String]): Unit = {

    val DateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

    val configuration = Configuration(
      Username = "http_user",
      Password = "qwe123",
      ApiUrl = "http://127.0.0.1:9509/api"
    )

    val msg = Message(
      ToAddress = "+36201111111",
      Text = "Hello world!",
      TimeToSend = LocalDateTime.parse("2021-07-14 16:30:00", DateFormat)

    )

    val api = MessageApi(configuration)

    val result = api.Send(msg)

    println(result)
  }
}
	

الكود 1 - SendScheduledSms.scala

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

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

تنزيل SendScheduledSms.scala

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

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

في ملف SendScheduledSms.scala.zip ستجد ملف SendScheduledSms.scala، الذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. تم سرد كود المثال أدناه.

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

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

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

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

تثبيت Ozeki SMS Gateway وإنشاء مستخدم لواجهة برمجة تطبيقات HTTP

لتتمكن من إرسال رسائل SMS من Scala، تحتاج أولاً إلى تثبيت Ozeki SMS Gateway. يمكن تثبيت بوابة الرسائل على نفس الكمبيوتر الذي تقوم فيه بتطوير كود Scala في أي محرر نصوص، مثل Notepad في Windows. بعد التثبيت، تكون الخطوة التالية هي ربط Ozeki SMS Gateway بشبكة الهاتف المحمول. يمكنك إنشاء مستخدم لواجهة برمجة تطبيقات HTTP لإرسال الرسائل. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.

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

رابط واجهة برمجة تطبيقات HTTP لإرسال رسائل SMS من Scala

لإرسال رسائل SMS من Scala، سيتعين على تطبيق Scala الخاص بك إرسال طلب HTTP إلى بوابة الرسائل. يظهر رابط الواجهة أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر الذي يعمل عليه تطبيق إرسال الرسائل، يمكن أن يكون هذا العنوان 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'، فستحصل على السلسلة المشفرة التالية: 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: 320
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":"e2f650ee-90cc-43c5-885b-5ea4a0458381",
			"to_address":"+36201111111",
			"text":"مرحبًا بالعالم!",
			"create_date":"2021-07-15T10:32:42",
			"valid_until":"2021-07-22T10:32:42",
			"time_to_send":"2021-07-15T11: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 10:26:26 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "تمت إضافة الرسائل إلى قائمة الانتظار للإرسال.",
	"data": {
	  "total_count": 1,
	  "success_count": 1,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "e2f650ee-90cc-43c5-885b-5ea4a0458381",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "مرحبًا بالعالم!",
	      "create_date": "2021-07-15 10:32:42",
	      "valid_until": "2021-07-22 10:32:42",
	      "time_to_send": "2021-07-15 11:00:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	
كيفية إرسال رسالة SMS من Scala باستخدام واجهة برمجة تطبيقات الرسائل القصيرة في Scala (فيديو تعليمي)

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

الفيديو 1 - كيفية إرسال رسالة SMS من Scala باستخدام واجهة برمجة تطبيقات الرسائل القصيرة في Scala (فيديو تعليمي)

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

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

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

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

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

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

ملخص

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

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

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

More information