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

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

كيفية إرسال رسائل SMS باستخدام Node.js
الشكل 1 - كيفية إرسال رسائل SMS متعددة من Node.js

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

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

SendMultipleSms.mjs
import { Configuration, Message, MessageApi } from './Ozeki.Libs.Rest.js';


var configuration = new  Configuration();
configuration.Username = "http_user";
configuration.Password = "qwe123";
configuration.ApiUrl = "http://127.0.0.1:9509/api";

var msg1 = new Message();
msg1.ToAddress = "+36201111111";
msg1.Text = "Hello world 1";

var msg2 = new Message();
msg2.ToAddress = "+36202222222";
msg2.Text = "Hello world 2";

var msg3 = new Message();
msg3.ToAddress = "+36203333333";
msg3.Text = "Hello world 3";

var messages = new Array();

messages.push(msg1);
messages.push(msg2);
messages.push(msg3);

var api = new MessageApi(configuration);

const result = await api.Send(messages);

console.log(result.toString());
	

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

يمكنك استخدام فئة Message لإنشاء الرسالة النصية، ويمكنك استخدام فئة MessageApi لإرسال الرسالة النصية إلى بوابة الرسائل. ستقوم بوابة الرسائل بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.

تحميل SendMultipleSms.js

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

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

يحتوي ملف SendMultipleSms.js.zip على مكتبة Ozeki.Libs.Rest، والتي توفر لك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا ملف SendMultipleSms.mjs في المشروع، والذي يحتوي على كود المثال ليوضح لك كيفية إرسال رسالة SMS. تم سرد كود المثال هذا أدناه.

مشروع مثال لإرسال رسائل SMS متعددة باستخدام Node.js
الشكل 2 - دليل SendMultipleSms.js

هذا المشروع يحتوي على تبعيات، لذا قبل البدء يجب عليك تثبيت حزمة node-fetch باستخدام الأمر التالي:

npm install node-fetch
	

الكود 1 - أمر تثبيت حزمة node-fetch

.

كيفية إرسال رسائل SMS من Node.js (خطوات سريعة)

لإرسال رسائل SMS من Node.js:

  1. تثبيت Ozeki SMS Gateway
  2. توصيل Ozeki SMS Gateway بشبكة الهاتف المحمول
  3. إرسال رسالة SMS اختبارية من واجهة Ozeki
  4. إنشاء مستخدم لواجهة برمجة تطبيقات HTTP لإرسال SMS
  5. Apache NetBeans
  6. تحميل مشروع المثال أعلاه
  7. إنشاء الرسالة النصية عن طريق إنشاء كائن Message جديد
  8. إنشاء واجهة برمجة تطبيقات لإرسال رسالتك
  9. استخدام طريقة Send لإرسال رسالتك
  10. قراءة رسالة الاستجابة على وحدة التحكم
  11. فحص السجلات في بوابة الرسائل

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

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

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

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

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

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

مصادقة HTTP لإرسال الرسائل القصيرة من جافا سكريبت

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

var usernamePassword = username + ":" + password;
return `Basic ${Base64.encode(usernamePassword)}`;
	

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

رأس طلب HTTP لإرسال الرسائل القصيرة من جافا سكريبت

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

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

طلب HTTP لإرسال الرسائل القصيرة من Node.Js

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

POST /api?action=sendmsg HTTP/1.1
Connection: close
Content-Length: 932
Content-Type: application/json
Accept: */*
Accept-Encoding: gzip,deflate
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch)

{
	"messages":	[
		{
			"message_id":	"bda3e52a-6081-4c7e-954a-e3baf41d68bd",
			"to_address":	"+36201111111",
			"text":	"Hello world 1",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		},
		{
			"message_id":	"50147a56-d453-50ba-b0ba-567c789cb539",
			"to_address":	"+36202222222",
			"text":	"Hello world 2",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		},
		{
			"message_id":	"f05671e8-7664-d1c0-82da-0934464e2978",
			"to_address":	"+36203333333",
			"text":	"Hello world 3",
			"create_date":	"2021-06-14T09:45:52",
			"vaild_date":	"2021-06-21T09:45:52",
			"time_to_send":	"2021-06-14T09:45:52",
			"submit_report_requested":	true,
			"delivery_report_requested":	true,
			"view_report_requested":	true
		}
	]
}
	

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

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

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.120 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Mon, 14 Jun 2021 09:12:00 GMT
Server: 10/10.3.120
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": "bda3e52a-6081-4c7e-954a-e3baf41d68bd",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "50147a56-d453-50ba-b0ba-567c789cb539",
	      "from_station": "%",
	      "to_address": "+36202222222",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "f05671e8-7664-d1c0-82da-0934464e2978",
	      "from_station": "%",
	      "to_address": "+36203333333",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-14 09:45:52",
	      "valid_until": "2021-06-21 09:45:52",
	      "time_to_send": "2021-06-14 09:45:52",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

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

يُظهر لك هذا الفيديو كيفية تنزيل واستخدام مشروع SendMultipleSms.js. بمجرد أن تقوم بإضافة الملفات المطلوبة إلى مشروعك، قد تلاحظ وجود ملف يسمى Ozeki.Lbis.Rest.js. هذا هو الملف الذي يحتوي على MessageApi وكل ما تحتاجه لإرسال رسالة قصيرة باستخدام جافا سكريبت.

الفيديو 1 - كيفية تنزيل Ozeki.Libs.Rest وإعداد مشروعك (فيديو تعليمي)

مثال Node.Js للرسائل القصيرة: SendMultipleSms.mjs (في المفكرة)

في هذه الصورة (الشكل 3)، يمكنك العثور على الكود المصدري للمشروع، مفتوحًا في المفكرة. يمكنك التعديل في المفكرة أيضًا. إذا كنت معتادًا على Node.js، لا تتردد في تغيير المتغيرات في الكود وإرسال رسالة مخصصة إلى عنوان من اختيارك.

مثال جافاسكريبت لإرسال رسائل قصيرة متعددة
الشكل 3 - SendMultipleSms.mjs في المفكرة

مثال Node.Js للرسائل القصيرة: SendMultipleSms.mjs (في Visual Studio Code)

إذا كنت تبحث عن طريقة أسهل لفتح وتعديل الكود المصدري، جرب استخدام Visual Studio Code (الشكل 4). فهو يوفر تلوينًا للكود، مزيدًا من المساعدة، والإضافة التلقائية. إنه بيئة تطوير متكاملة (IDE) خفيفة الوزن ومفتوحة المصدر ومجانية للاستخدام.

مثال جافاسكريبت لإرسال رسائل قصيرة متعددة
الشكل 4 - SendMultipleSms.mjs في Visual Studio Code

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

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

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

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

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

أفكار ختامية

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

يمكنك العثور على المزيد من المقالات حول وظائف واجهة برمجة تطبيقات الرسائل القصيرة لـ Node.js على موقع Ozeki. اذهب، تعلم المزيد الآن، تابع مع كيفية جدولة رسالة قصيرة في Node.js.

لنبدأ العمل، أولًا وقبل كل شيء، قم بتنزيل Ozeki SMS Gateway!

More information