كيفية جدولة رسالة 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 باستخدام مكتبة Ozeki.Libs.Rest في جافا. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.

Main.java
import Ozeki.Libs.Rest.*;
import java.time.LocalDateTime;

public class Main {

    public static void main(String[] args) {

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

        var msg = new Message();
        msg.ToAddress = "+36201111111";
        msg.Text = "Hello world!";
        msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00");

        var api = new MessageApi(configuration);
        
        var result = api.Send(msg);
        
        System.out.println(result);
    }
}
    

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

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

تحميل SendScheduledSms.java

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

ما الموجود في ملف SendScheduledSms.java.zip؟

يحتوي ملف SendScheduledSms.java.zip على مكتبة Ozeki، التي توفر لك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا ملف Main.java في المشروع، الذي يحتوي على الكود النموذجي ليوضح لك كيفية إرسال رسالة SMS. هذا الكود النموذجي مدرج أدناه.

الشكل 2 - دليل SendScheduledSms.java

كيفية إرسال رسالة SMS مجدولة من جافا (خطوات سريعة)

لإرسال رسالة SMS مجدولة من جافا:

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

قم بتثبيت بوابة Ozeki SMS وأنشئ مستخدمًا لواجهة برمجة تطبيقات HTTP

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

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

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

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

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

مصادقة HTTP لإرسال رسائل SMS من جافا

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

var usernamePassword = username + ":" + password;
var encodedUsernamePassword = usernamePassword.getBytes();
return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
    

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

رأس طلب HTTP لإرسال رسالة SMS مجدولة من جافا

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

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

طلب HTTP لإرسال SMS من جافا

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

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 320
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1

{
"messages":	[
    {
        "message_id": "5b9cea01-6bc0-42a7-9409-7b86eedf851b",
        "submit_report_requested": true,
        "view_report_requested": true,
        "valid_until": "2021-06-18 13:49:36",
        "time_to_send": "2021-06-11 13:52:00",
        "to_address": "+36201111111",
        "text": "Hello world!",
        "create_date": "2021-06-11 13:49:36",
        "delivery_report_requested": true
    }
]
}
    

استجابة HTTP المستلمة من مثال SMS جافا

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

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.120 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 11 Jun 2021 13:37:11 GMT
Server: 10/10.3.120
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": "5b9cea01-6bc0-42a7-9409-7b86eedf851b",
      "from_station": "%",
      "to_address": "+36201111111",
      "to_station": "%",
      "text": "Hello world!",
      "create_date": "2021-06-11 13:49:36",
      "valid_until": "2021-06-18 13:49:36",
      "time_to_send": "2021-06-11 13:52:00",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": false,
      "tags": [
        {
          "name": "Type",
          "value": "SMS:TEXT"
        }
      ],
      "status": "SUCCESS"
    }
  ]
}
}
    

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

يوضح لك هذا الفيديو كيفية إنشاء مشروع جديد في Apache NetBeans، وكيفية تسميته إلى SendScheduledSms. بمجرد إنشاء الحل، قد تلاحظ وجود مجلد يسمى <default package> في مشروعك داخل مجلد Source Packages. هذا هو المكان الذي ستقوم فيه بإنشاء أو لصق ملف Main.java. ثم يتعين عليك لصق مجلد Ozeki في مجلد Source packages وهذه كل التحضيرات التي تحتاجها لإرسال SMS باستخدام جافا.

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

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

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

Main.java
import Ozeki.Libs.Rest.*;
import java.time.LocalDateTime;

public class Main {

    public static void main(String[] args) {

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

        var msg = new Message();
        msg.ToAddress = "+36201111111";
        msg.Text = "Hello world!";
        msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00");

        var api = new MessageApi(configuration);
        
        var result = api.Send(msg);
        
        System.out.println(result);
    }
}
    

كيفية استخدام مثال SMS لجافا:

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

مثال SMS لجافا: Main.java

الشكل 3 - مشروع SendScheduledSms
الختام

قدمت هذه المقالة نظرة عامة حول جدولة الرسائل القصيرة (SMS) في جافا باستخدام بوابة أوزكي للرسائل القصيرة. إذا كنت ترغب في إرسال رسائل نصية في وقت محدد، فإن جدولة الرسائل القصيرة يمكن أن تكون مفيدة للغاية. باستخدام هذا الدليل والكود أعلاه، ستحصل على كل المعرفة والأدوات اللازمة لجعل جدولة الرسائل القصيرة ممكنة. تتيح لك بوابة أوزكي للرسائل القصيرة تسجيل الرسائل في قاعدة بيانات وتوفر العديد من إمكانيات التقارير لتزويدك بأكبر قدر من المعلومات التي تحتاجها حول اتصالات الرسائل القصيرة.

تابع القراءة على صفحة البرامج التعليمية لأوزكي، حيث يمكنك العثور على المزيد من المعلومات حول مواضيع مثل استقبالها في جافا.

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

More information