كيفية استقبال رسالة SMS في Node.js
أبسط طريقة لإرسال رسائل SMS من Node.js هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في Ozeki SMS Gateway. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود JavaScript لاستقبال رسائل SMS
يوضح مثال كود JavaScript لرسائل SMS أدناه كيف يمكنك استقبال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة بـ Ozeki SMS Gateway باستخدام مكتبة JavaScript Ozeki.Libs.Rest. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
ReceiveSms.mjsimport { Configuration, 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 api = new MessageApi(configuration); const result = await api.DownloadIncoming(); console.log(result.toString()); for (let i = 0; i < result.MessageCount; i++) { console.log(result.Messages[i].toString()); }
كيفية استخدام مثال JavaScript لرسائل SMS:
يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة ويمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تنزيل ReceiveSms.js
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تنزيل: ReceiveSms.js.zip (4.38 كيلوبايت)
ما الموجود في ملف ReceiveSms.js.zip؟
يحتوي ملف ReceiveSms.js.zip على مكتبة Ozeki.Libs.Rest، والتي تمنحك جميع الأدوات اللازمة لإرسال وتحديد وحذف واستقبال رسائل SMS. ستجد أيضًا ملف ReceiveSms.mjs في المشروع، والذي يحتوي على كود المثال ليوضح لك كيفية استقبال رسائل SMS. تم سرد كود المثال هذا أدناه.
هذا المشروع له تبعيات، لذا قبل البدء يجب عليك تثبيت حزمة node-fetch باستخدام الأمر التالي:
npm install node-fetch
كيفية استقبال رسائل SMS من Node.js (خطوات سريعة)
لاستقبال رسائل SMS من Node.js:
- قم بتثبيت Ozeki SMS Gateway
- قم بتوصيل Ozeki SMS Gateway بشبكة الهاتف المحمول
- أرسل رسالة SMS تجريبية من واجهة Ozeki
- قم بإنشاء مستخدم لواجهة برمجة تطبيقات HTTP لرسائل SMS
- Apache NetBeans
- قم بتنزيل مشروع المثال أعلاه
- قم بإنشاء الرسالة القصيرة عن طريق إنشاء كائن Message جديد
- قم بإنشاء واجهة برمجة تطبيقات لإرسال رسالتك
- استخدم طريقة DownloadIncoming() لاستقبال رسالتك (رسائلك)
- اقرأ رسالة الاستجابة على وحدة التحكم، واطبع الرسائل على وحدة التحكم
- تحقق من السجلات في بوابة الرسائل القصيرة
قم بتثبيت 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 لاستخدام إرسال رسائل SMS من JavaScript
لمصادقة عميل رسائل SMS الخاص بـ Node.js، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في JavaScript، يمكنك استخدام الكود التالي لإجراء هذا التشفير:
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. يحتوي على رقم المستلم ونص الرسالة.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Connection: close 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)
استجابة 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": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "02ccc4d5-4aeb-7f64-b980-9aa262ef86fb", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1", "create_date": "2021-06-14 12:00:14", "valid_until": "2021-06-21 12:00:14", "time_to_send": "2021-06-14 12:00:14", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "bb663f6c-fcf2-df32-bd33-1778e8578f23", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2", "create_date": "2021-06-14 12:00:14", "valid_until": "2021-06-21 12:00:14", "time_to_send": "2021-06-14 12:00:14", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "ca555a52-2f5a-285a-b6e2-6aa1fa3353f8", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3", "create_date": "2021-06-14 12:00:14", "valid_until": "2021-06-21 12:00:14", "time_to_send": "2021-06-14 12:00:14", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
كيفية استقبال الرسائل القصيرة من Node.Js باستخدام واجهة برمجة تطبيقات الرسائل القصيرة (فيديو تعليمي)
يُظهر لك هذا الفيديو كيفية تنزيل واستخدام مشروع ReceiveSms.js. بمجرد إضافة الملفات المطلوبة إلى مشروعك، قد تلاحظ وجود ملف يسمى Ozeki.Lbis.Rest.js. هذا هو الملف الذي يحتوي على MessageApi وكل ما تحتاجه لإرسال رسالة قصيرة باستخدام جافا سكريبت.
مثال الرسائل القصيرة في Node.Js: ReceiveSms.mjs (في المفكرة)
في الصورة التالية، يمكنك رؤية كود المصدر لـ ReceiveSMS.mjs مفتوحًا (الشكل 3). في هذه الحالة، استخدمنا المفكرة لفتح كود المصدر، والتي يمكن استخدامها لتعديله أيضًا. كما ترى، يحتوي الكود على متغيرات اسم المستخدم وكلمة المرور المحددة مسبقًا. إذا كنت معتادًا على لغة برمجة Node.js، فلا تتردد في تغيير قيم المتغيرات لتتناسب مع بيانات اعتماد مستخدم HTTP الخاص بك.
مثال الرسائل القصيرة في Node.Js: ReceiveSms.mjs (في Visual Studio Code)
إذا كنت ترغب في استخدام بيئة تطوير متكاملة (IDE) مع ترميز ألوان مدمج ووثائق مفيدة وملحقات، فاستخدم Visual Studio Code. إنها بيئة برمجة خفيفة الوزن ومجانية الاستخدام يمكنك استخدامها لتعديل الكود بلغات مختلفة. كما ترى، قمنا ببرمجة اسم المستخدم وكلمة المرور مثالياً في كود المصدر. إذا كنت معتادًا على لغة برمجة Node.js، فلا تتردد في تعديلها لتناسب مستخدم HTTP الخاص بك.
بعد تقديم الطلب، من الجيد التحقق من بوابة الرسائل القصيرة الخاصة بك، لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة بوابة Ozeki للرسائل القصيرة. يوضح الفيديو التالي ما يجب البحث عنه.
ملخص
شرح الدليل كيفية إعداد واجهة برمجة التطبيقات هذه لاستقبال الرسائل النصية باستخدام برنامج Node.js عبر مستخدم HTTP في بوابة Ozeki للرسائل القصيرة. هذا الحل يساعدك في تنظيم رسائلك الواردة عن طريق نقلها من مجلد الوارد إلى تطبيق Node.js الخاص بك. تطبيق هذا البرنامج يمنحك القدرة على الحفاظ على نظام المراسلة الخاص بك منظمًا ويسمح بتدفق المعلومات المهمة إليك.
أراهن أنك تريد معرفة المزيد عن الإدارة الفعالة للرسائل، ستجد ما تحتاجه على صفحة Ozekي. يساعد كثيرًا إذا قمت بفرز الرسائل والاحتفاظ بما تحتاجه فقط، لذا اقرأ المقال التالي حول كيفية حذف رسالة نصية في Node.js.
قم بإعداد بوابة Ozekي للرسائل القصيرة الآن واستخدم ما تعلمته!
More information
- إرسال SMS باستخدام Node.js مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- إرسال عدة رسائل SMS باستخدام Node.js مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- جدولة SMS باستخدام Node.js مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- استقبال SMS باستخدام Node.js مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- حذف SMS باستخدام Node.js مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- Github: Node.js SMS API
- درس Node.js: Hello world