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

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

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

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

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

SendSms.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!"

api = MessageApi.new(configuration)

result = api.send(msg)

print(result)
	

الكود 1 - SendSms.rb

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

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

تنزيل SendSms.rb

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

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

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

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

كيفية تثبيت gem ozeki_libs_rest باستخدام طرفية لينكس

gem install ozeki_libs_rest
	

الكود 2 - أمر تثبيت gem ozeki_libs_rest

الفيديو 1 - كيفية تثبيت gem ozeki_libs_rest (فيديو تعليمي)

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

لإرسال رسائل SMS من روبي:

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

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

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

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

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

لإرسال رسائل SMS من روبي، سيتعين على روبي إرسال طلب HTTP إلى بوابة الرسائل. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان 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 من روبي

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

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

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

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

لإرسال الرسائل القصيرة، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب 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":	"2861551f-fddd-4b8e-9b06-eab9e1a0d179",
            "to_address":	"+36201111111",
            "text":	"Hello world!",
            "create_date":	"2021-07-06T09:09:44",
            "valid_until":	"2021-07-13T09:09:44",
            "time_to_send":	"2021-07-06T09:09:44",
            "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 08:52:02 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": "2861551f-fddd-4b8e-9b06-eab9e1a0d179",
          "from_station": "%",
          "to_address": "+36201111111",
          "to_station": "%",
          "text": "Hello world!",
          "create_date": "2021-07-06 09:09:44",
          "valid_until": "2021-07-13 09:09:44",
          "time_to_send": "2021-07-06 09:09:44",
          "submit_report_requested": true,
          "delivery_report_requested": false,
          "view_report_requested": false,
          "tags": [
            {
              "name": "Type",
              "value": "SMS:TEXT"
            }
          ],
          "status": "SUCCESS"
        }
      ]
    }
}
    

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

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

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

كيفية إرسال الرسائل القصيرة من روبي باستخدام واجهة برمجة تطبيقات الرسائل القصيرة لـ C# (فيديو تعليمي)

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

الفيديو 3 - كيفية تنزيل واستخراج مشروع المثال (فيديو تعليمي)

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

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

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

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

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

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

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

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

الفيديو 5 - كيفية اختبار ما إذا كان الطلب مقبولاً من عميل SMPP (برنامج تعليمي بالفيديو)

الفيديو 6 - كيف يبدو استلام الرسالة النصية على الهاتف المحمول (برنامج تعليمي بالفيديو)

More information