كيفية إرسال رسائل SMS متعددة من R

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

كيفية إرسال رسائل SMS متعددة من R
الشكل 1 - كيفية إرسال رسائل SMS متعددة من R

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

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

SendMultipleSms.R
library(Ozeki.Libs.Rest)


configuration <- Ozeki.Libs.Rest::Configuration$new(
  username = "http_user",
  password = "qwe123",
  api_url = "http://127.0.0.1:9509/api"
)

msg1 <- Ozeki.Libs.Rest::Message$new()
msg1$to_address <- "+36201111111"
msg1$text <- "Hello world 1"

msg2 <- Ozeki.Libs.Rest::Message$new()
msg2$to_address <- "+36202222222"
msg2$text <- "Hello world 2"

msg3 <- Ozeki.Libs.Rest::Message$new()
msg3$to_address <- "+36203333333"
msg3$text <- "Hello world 3"

api <- Ozeki.Libs.Rest::MessageApi$new(configuration)

result <- api$send(list(msg1, msg2, msg3))

print(result$to_string())
	

الكود 1 - SendMultipleSms.R

كيفية استخدام مثال R لرسائل SMS:

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

تنزيل SendMultipleSms.R

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

ما الموجود في ملف SendMultipleSms.R.zip؟

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

الشكل 2 - ما الموجود داخل SendMultipleSms.R.zip

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

لإرسال SMS من R:

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

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

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

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

رابط HTTP API لاستخدامه لإرسال SMS من R

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

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

مصادقة HTTP لاستخدامها لإرسال SMS من R

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

username_password <- paste(username, ":", password, sep="")
username_password_encoded <- base64enc::base64encode(charToRaw(username_password))
return (paste("Basic", username_password_encoded, sep=" "))
	

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

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

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

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

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

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

POST /api?action=sendmsg HTTP/1.1
Content-Length: 962
Content-Type: application/json
Accept: application/json
Accept-Encoding: deflate, gzip
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: libcurl/7.64.1 r-curl/4.3.2 httr/1.4.2

{
	"messages":
	[
		{
			"message_id": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1",
			"to_address": "+36201111111",
			"text": "Hello world 1",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		},
		{
			"message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97",
			"to_address": "+36202222222",
			"text":"Hello world 2",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		},
		{
			"message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6",
			"to_address": "+36203333333",
			"text": "Hello world 3",
			"create_date": "2021-07-13T12:46:23",
			"valid_until": "2021-07-20T12:46:23",
			"time_to_send": "2021-07-13T12:46:23",
			"is_submit_report_requested": true,
			"is_delivery_report_requested": true,
			"is_view_report_requested": true
		}
	]
}
	

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

بمجرد أن يتلقى بوابة الرسائل القصيرة هذا الطلب، سيقوم بإنشاء استجابة 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, 13 Jul 2021 14:08:09 GMT
Server: 10/10.3.123
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": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97",
	      "from_station": "%",
	      "to_address": "+36202222222",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6",
	      "from_station": "%",
	      "to_address": "+36203333333",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-13 12:46:23",
	      "valid_until": "2021-07-20 12:46:23",
	      "time_to_send": "2021-07-13 12:46:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

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

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

مثال الرسائل القصيرة في R: SendMultipleSms.R

كود المثال أدناه هو جزء من ملف SendMultipleSms.R.

كود مصدر R لإرسال رسائل قصيرة متعددة
الشكل 3 - ملف SendMultipleSms.R

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

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

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

الختام

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

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

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

More information