كيفية إرسال رسائل SMS متعددة من روبي
أبسط طريقة لإرسال رسائل SMS متعددة من روبي هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة SMS. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة SMS بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود روبي لإرسال رسائل SMS متعددة إلى الهاتف المحمول
يوضح مثال كود روبي لإرسال SMS أدناه كيفية إرسال SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام gem ozeki_libs_rest. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendMultipleSms.rbrequire 'ozeki_libs_rest' configuration = Configuration.new( "http_user", "qwe123", "http://127.0.0.1:9509/api" ); msg1 = Message.new msg1.to_address = "+36201111111" msg1.text = "Hello world 1" msg2 = Message.new msg2.to_address = "+36202222222" msg2.text = "Hello world 2" msg3 = Message.new msg3.to_address = "+36203333333" msg3.text = "Hello world 3" api = MessageApi.new(configuration) result = api.send([ msg1, msg2, msg3 ]) print(result)
كيفية استخدام مثال روبي لإرسال SMS:
يمكن استخدام مثال روبي لإرسال SMS في أي تطبيق روبي. لاستخدامه، يجب تنزيل gem ozeki_libs_rest. بعد تنزيل gem، تحتاج إلى إضافة مرجع إليه في كود المصدر الخاص بروبي. سيسمح لك ذلك باستخدام الفئات المقدمة من gem ozeki_libs_rest. يمكنك استخدام فئة Message لإنشاء SMS. يمكنك استخدام فئة MessageApi لإرسال SMS إلى بوابة SMS. ستقوم بوابة SMS بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تنزيل SendMultipleSms.rb
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: SendMultipleSms.rb.zip (377B)
ما الموجود في ملف SendMultipleSms.rb.zip؟
يحتوي SendMultipleSms.rb.zip على ملف SendMultipleSms.rb، الذي يحتوي على كود المثال ليوضح لك كيفية إرسال SMS. تم سرد كود المثال هذا أدناه.
كيفية إرسال رسائل SMS متعددة من روبي (خطوات سريعة)
لإرسال رسائل SMS متعددة من روبي:
- قم بتنزيل ملف SendMultipleSms.rb.zip
- استخرج ملف .zip من مجلد التنزيلات
- افتح ملف SendMultipleSms.rb في أي محرر نصوص مثل Notepad
- شغّل بوابة Ozeki SMS
- قم بإنشاء مستخدم HTTP API في Ozeki
- شغّل كود روبي SendMultipleSms.rb باستخدام موجه الأوامر
- تحقق من صندوق الرسائل المرسلة في بوابة 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: 992 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": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "to_address": "+362222222", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "to_address": "+363333333", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
استجابة HTTP المستلمة من مثال الرسائل القصيرة بروبي
بمجرد استلام بوابة الرسائل القصيرة لهذا الطلب، ستقوم بإنشاء استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة، للإشارة إلى ما إذا كان طلب إرسال الرسالة القصيرة ناجحًا أم لا. كما ستعود أيضًا بهيكل مشفر بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "from_station": "%", "to_address": "+362222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "from_station": "%", "to_address": "+363333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
مثال الرسائل القصيرة بروبي: SendMultipleSms.rb
كود المثال أدناه هو جزء من ملف SendMultipleSms.rb.
ملخص
شرحت هذه المقالة خطوات إرسال رسائل قصيرة متعددة في روبي باستخدام بوابة Ozeki للرسائل القصيرة. يمكن أن يكون هذا الابتكار مفيدًا جدًا إذا كنت ترغب في إرسال رسائل نصية إلى عدد كبير من العملاء في وقت واحد. يضمن التكامل بين أكواد روبي وبوابة Ozeki للرسائل القصيرة حصولك على أعلى أداء ممكن. يمكن تنزيل بوابة Ozeki للرسائل القصيرة من موقع Ozekي ويمكن استخدامها في فترة تجريبية مجانًا.
تأكد من أنك لا تنتهي من القراءة هنا، قم بزيارة صفحة البرامج التعليمية لـ Ozekي حيث يمكنك العثور على المزيد من المعلومات حول مواضيع مثل استلام الرسائل في روبي.
الآن الشيء الوحيد المتبقي هو تنزيل بوابة Ozekي للرسائل القصيرة والبدء في العمل!
More information
- إرسال SMS بـ Ruby باستخدام واجهة برمجة التطبيقات REST لـ HTTP (عينة كود)
- إرسال عدة رسائل SMS بـ Ruby باستخدام واجهة برمجة التطبيقات REST لـ HTTP (عينة كود)
- جدولة SMS بـ Ruby باستخدام واجهة برمجة التطبيقات REST لـ HTTP (عينة كود)
- استقبال SMS بـ Ruby باستخدام واجهة برمجة التطبيقات REST لـ HTTP (عينة كود)
- حذف SMS بـ Ruby باستخدام واجهة برمجة التطبيقات REST لـ HTTP (عينة كود)
- كيفية تنزيل أحدث مكتبة SMS لـ Ruby من Github
- إرسال SMS بـ Ruby من Linux