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

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

كيفية جدولة رسالة SMS في روبي
الشكل 1 - كيفية جدولة رسالة SMS في روبي

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

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

SendScheduledSms.rb
require 'ozeki_libs_rest'

configuration = Configuration.new(
    "http_user",
    "qwe123",
    "http://127.0.0.1:9509/api"
);

msg = Message.new
msg.to_address = "+36201111111"
msg.text = "Hello world!"
msg.time_to_send = DateTime.parse('2021-07-06T013:00:00')

api = MessageApi.new(configuration)

result = api.send(msg)

print(result)
	

كيفية استخدام مثال SMS في روبي:

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

تنزيل SendScheduledSms.rb

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

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

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

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

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

لإرسال رسالة SMS مجدولة من روبي:

  1. قم بتنزيل ملف SendScheduledSms.rb.zip
  2. استخرج ملف .zip من مجلد التنزيلات
  3. افتح ملف SendScheduledSms.rb في أي محرر نصوص مثل Notepad
  4. قم بتشغيل بوابة Ozeki SMS
  5. قم بإنشاء مستخدم HTTP API في Ozeki
  6. قم بتشغيل كود روبي SendScheduledSms.rb باستخدام موجه الأوامر
  7. تحقق من صندوق الرسائل المرسلة في بوابة Ozeki SMS

تثبيت بوابة Ozeki SMS وإنشاء مستخدم HTTP API

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

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

رابط HTTP API لاستخدام إرسال SMS من روبي

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

http://127.0.0.1:9509/api?action=rest
	

مصادقة HTTP لاستخدام إرسال SMS من روبي

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

username_password = username + ':' + password
username_password_encoded = Base64.encode64(username_password)
'Basic ' + username_password_encoded
	

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

رأس طلب HTTP لإرسال SMS من روبي

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

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

طلب HTTP لإرسال الرسائل القصيرة من روبي

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

POST /api?action=sendmsg HTTP/1.1
Content-Length: 339
Content-Type: application/json
Accept: application/json
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Faraday v1.5.0
  
{
	"messages":	[
		{
			"message_id":	"f0f02105-0a78-46a9-ae14-f0728bac2aa6",
			"to_address":	"+36201111111",
			"text":	"Hello world!",
			"create_date":	"2021-07-06T14:32:21",
			"valid_until":	"2021-07-13T14:32:21",
			"time_to_send":	"2021-07-06T13:00:00",
			"is_submit_report_requested":	true,
			"is_delivery_report_requested":	true,
			"is_view_report_requested":	true,
			"tags":	[]
		}
	]
}
	

استجابة HTTP المستلمة من مثال الرسائل القصيرة بروبي

بمجرد أن يستقبل بوابة الرسائل القصيرة هذا الطلب، سيقوم بإنشاء استجابة 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: Tue, 06 Jul 2021 14:26:41 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": "f0f02105-0a78-46a9-ae14-f0728bac2aa6",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-06 14:32:21",
	      "valid_until": "2021-07-13 14:32:21",
	      "time_to_send": "2021-07-06 13:00:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

مثال الرسائل القصيرة بروبي: SendScheduledSms.rb

في الفيديو التالي، نقدم لك عملية تنزيل الكود المصدري للمشروع. سيبدأ الفيديو بتنزيل ملفات المشروع وسيأخذك حتى فتح ملف المشروع. سيوضح لك الفيديو كيفية تنزيل ملف المشروع وفتحه باستخدام المفكرة. هذا الفيديو الذي مدته 36 ثانية مفصل ويحتوي على جميع المعلومات التي تحتاجها لإكمال عملية التنزيل بنجاح.

الفيديو 1 - كيفية تنزيل وفتح الملف أعلاه (فيديو تعليمي)

كود المثال

كود المثال أدناه هو جزء من ملف SendScheduledSms.rb. يمكنك تعديل مشروع المثال عن طريق العثور على السطر الصحيح واستبدال جزء من الكود بالبيانات الصحيحة. على سبيل المثال، يحمل المتغير msg.to_address رقم الهاتف الذي سيتم تسليم الرسالة إليه (الشكل 3). يحمل المتغير msg.text نص الرسالة. قم بتعديله حسب رغبتك وقم بتشغيل المشروع لإرسال رسالة تجريبية.

الشكل 3 - ملف SendScheduledSms.rb

كيفية إرسال رسائل قصيرة مجدولة باستخدام روبي (فيديو تعليمي)

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

الفيديو 2 - كيفية استخدام ملف SendScheduledSms.rb (فيديو تعليمي)

الختام

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

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

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

More information