كيفية إرسال رسائل SMS من Tcl/Tk
أبسط طريقة لإرسال رسائل SMS من Tcl/Tk هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود Tcl/Tk لإرسال رسائل SMS إلى الهاتف المحمول
يوضح مثال كود Tcl/Tk لإرسال الرسائل القصيرة أدناه كيفية إرسال الرسائل القصيرة باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام مكتبة Ozeki.Libs.Rest في Tcl/Tk. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendSms.tclsource Ozeki.Libs.Rest.tcl set configuration [ Configuration new ] $configuration setUsername "http_user" $configuration setPassword "qwe123" $configuration setApiUrl "http://127.0.0.1:9509/api" set msg [ Message new ] $msg setToAddress "+36201111111" $msg setText "Hello world!" set api [ MessageApi new $configuration ] set result [ $api send $msg ] puts [ $result toString ]
كيفية استخدام مثال Tcl/Tk لإرسال الرسائل القصيرة:
يمكن استخدام مثال Tcl/Tk لإرسال الرسائل القصيرة في أي تطبيق Tcl/Tk. لاستخدامه، يجب عليك إضافة ملف Ozeki.Libs.Rest.tcl إلى مشروعك. بعد إضافة الملف، يجب وضع توجيه source Ozeki.Libs.Rest.tcl في قسم الرأس من كود Tcl/Tk المصدر. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة Ozeki.Libs.Rest. يمكنك استخدام فئة Message لإنشاء الرسالة القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسالة القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendSms.tcl
يمكن تنزيل الكود المصدري الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendSms.tcl.zip (4.07 كيلوبايت)
ما الموجود في ملف SendSms.tcl.zip؟
يحتوي ملف SendSms.tcl.zip على مكتبة Ozeki.Libs.Rest، والتي تمنحك جميع الأدوات اللازمة لإرسال واستقبال رسائل SMS. ستجد أيضًا مشروع SendSms في الملف المضغوط، والذي يحتوي على الكود المثال ليوضح لك كيفية إرسال رسالة SMS. هذا الكود المثال مدرج أدناه.
كيفية إرسال رسائل SMS من Tcl/Tk (إرشادات بسيطة)
لإرسال رسائل SMS من Tcl/Tk:
- قم بتثبيت مستخدم واجهة برمجة تطبيقات HTTP
- قم بتمكين تسجيل أحداث الاتصال في علامة التبويب المتقدمة
- قم بتنزيل وتثبيت مكتبة Tcllib
- قم بتنزيل ثم استخراج ملف SendSms.tcl.zip
- افتح ملف SendSms.tcl في محرر نصوص
- قم بتشغيل تطبيق Ozeki SMS Gateway
- قم بتشغيل كود Tcl/Tk SendSms.tcl في الطرفية
- تحقق من السجلات لمعرفة ما إذا تم إرسال الرسالة القصيرة
تثبيت Ozeki SMS Gateway وإنشاء مستخدم واجهة برمجة تطبيقات HTTP
لتتمكن من إرسال رسائل SMS من Tcl/Tk، تحتاج أولاً إلى إنشاء مستخدم واجهة برمجة تطبيقات HTTP لرسائل SMS. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود Tcl/Tk الخاص بك.
رابط واجهة برمجة تطبيقات HTTP لإرسال رسائل SMS من Tcl/Tk
لإرسال رسائل SMS من Tcl/Tk، سيتعين على Tcl/Tk إصدار طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط واجهة برمجة التطبيقات أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة. إذا تم تثبيت Ozeki SMS Gateway على نفس الكمبيوتر الذي يعمل عليه تطبيق Tcl/Tk لإرسال الرسائل القصيرة، فيمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لهذا الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لإرسال رسائل SMS من Tcl/Tk
لمصادقة عميل Tcl/Tk لإرسال الرسائل القصيرة، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(اسم المستخدم+":"+كلمة المرور). في Tcl/Tk يمكنك استخدام الكود التالي لإجراء هذا التشفير:
set usernamePassword "$username:$password" set usernamePasswordEncoded [ binary encode base64 $usernamePassword ] return "Basic $usernamePasswordEncoded"
على سبيل المثال، إذا قمت بتشفير اسم المستخدم 'http_user' وكلمة المرور 'qwe123'، فستحصل على السلسلة المشفرة بـ base64 التالية: aHR0cF91c2VyOnF3ZTEyMw==. للإرسال
رأس طلب HTTP لإرسال رسائل SMS من Tcl/Tk
لإرسال رسائل SMS، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا ندرج نوع المحتوى ورأس المصادقة.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
طلب HTTP لإرسال رسالة SMS من Tcl/Tk
لإرسال الرسالة القصيرة، سيقوم تطبيق Tcl/Tk الخاص بك بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يتكون من جزء رأس HTTP وجزء جسم HTTP. جسم HTTP عبارة عن سلسلة بيانات مشفرة بتنسيق JSON. يحتوي على رقم المستلم ونص الرسالة.
POST /api?action=sendmsg HTTP/1.1 Host: 127.0.0.1:9509 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 10.0) http/2.9.0 Tcl/8.6.9 Connection: close Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Accept: */* Accept-Encoding: gzip,deflate,compress Content-Type: application/json Content-Length: 320 { "messages": [ { "message_id": "48de1284-aea2-442b-a8cd-45112153a94f", "to_address": "+36201111111", "text": "Hello world!", "create_date": "2021-08-03T14:36:27", "valid_until": "2021-08-10T14:36:27", "time_to_send": "2021-08-03T14:36:27", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
استجابة HTTP المستلمة من مثال Tcl/Tk لرسائل SMS
بمجرد استلام بوابة الرسائل القصيرة لهذا الطلب، ستقوم بإنشاء استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة، للإشارة إلى ما إذا كان طلب إرسال الرسالة ناجحًا أم لا. كما ستعود أيضًا بهيكل مشفر بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Mon, 02 Aug 2021 13:44:10 GMT Server: 10/10.3.124 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.124 (www.myozeki.com) Access-Control-Allow-Origin: * Date: Tue, 03 Aug 2021 12:36:27 GMT Connection: close { "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": "48de1284-aea2-442b-a8cd-45112153a94f", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-08-03 14:36:27", "valid_until": "2021-08-10 14:36:27", "time_to_send": "2021-08-03 14:36:27", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
قم بتوصيل بوابة الرسائل القصيرة الخاصة بك بشبكة الهاتف المحمول وأنشئ حساب مستخدم HTTP API
نفترض أنك قمت بالفعل بتثبيت Ozeki SMS Gateway، وقمت بتوصيلها بشبكة الهاتف المحمول. لكي تتمكن من إرسال رسائل SMS إلى هاتف محمول من Tcl/Tk، تحتاج إلى إعداد حساب مستخدم HTTP API في Ozeki SMS Gateway.
إنشاء مستخدم جديد (فيديو تعليمي)
يعرض لك هذا الفيديو كيفية إعداد حساب مستخدم HTTP API جديد. سيبدأ من الصفحة الرئيسية لـ Ozeki SMS Gateway وينتهي بعلامة تبويب الأحداث للمستخدم الجديد. سيوضح لك الفيديو كيفية إنشاء وتكوين المستخدم الجديد الخاص بك. الشيء الرائع في هذا الفيديو هو أنه لا يستغرق سوى 30 ثانية ولكنه يحتوي على جميع المعلومات التي تحتاجها لإنشاء مستخدم HTTP API جديد.
كيفية تثبيت Tcllib في Linux
إذا كنت تستخدم جهاز Linux، فيجب عليك تثبيت مكتبة Tcllib قبل أن تبدأ في استخدام مكتبة Ozeki.Libs.Rest. في الفيديو التالي سأوضح لك كيفية تثبيت مكتبة Tcllib باستخدام الطرفية و fossil. يمكنك تخطي هذا الجزء إذا كنت قد قمت بالفعل بتثبيت Tcllib.
خطوات تثبيت مكتبة Tcllib على Linux
-
لتثبيت مكتبة Tcllib، سنحتاج إلى شيء يسمى fossil. لتثبيت fossil على جهاز Linux، ستحتاج إلى هذا الأمر:
sudo apt-install fossil
-
بعد تثبيت fossil، يمكننا المتابعة عن طريق استنساخ مكتبة Tcllib باستخدام الأمر التالي:
cd Desktop fossil clone http://core.tcl.tk/tcllib tcllib.fossil
-
بعد استنساخ مكتبة Tcllib، يجب علينا إنشاء دليل واستخراج المكتبة فيه.
mkdir tcllib cd tcllib fossil open ../tcllib.fossil
-
ثم يمكننا تثبيت مكتبة Tcllib باستخدام الأمر التالي:
sudo tclsh installer.tcl
-
بعد اكتمال عملية التثبيت، يمكننا اختبار المكتبة باستخدام الأمر التالي:
tclsh % package require uuid // 1.0.7 % uuid::uuid generate // c004b0d6-f983-4169-8748-31013dfd24b2
يُظهر هذا الفيديو كيفية تنزيل ملف SendSms.tcl.zip من هذه الصفحة، وكيفية تنزيل محتوياته في محرر نصوص. إذا شاهدت الفيديو، ستلاحظ أن محتويات ملف SendSms.tcl المضغوط توضع على سطح المكتب. ستلاحظ أيضًا أننا ننقر مرتين على ملف SendSms.tcl لفتح سكريبت Tcl.
مثال على إرسال SMS باستخدام Tcl/Tk: SendSms.tcl
كود المثال أدناه هو جزء من ملف SendSms.tcl.zip. في الملف المضغوط ستجد ملفين: SendSms.tcl وملف Ozeki.Libs.Rest.tcl.
كيفية التحقق من قبول رسالة SMS من قبل مستخدم HTTP (فيديو تعليمي)
بعد إرسال الرسالة، من الجيد التحقق من بوابة الرسائل الخاصة بك لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة بوابة Ozeki للرسائل القصيرة. يُظهر الفيديو التالي ما يجب البحث عنه. سيبدأ الفيديو بالكود المفتوح وينتهي بتفاصيل الرسالة المرسلة. ستتعلم كيفية تشغيل المشروع، وكيف يبدو المشروع أثناء التشغيل، وكيف يبدو ملف السجل بعد ذلك. يستغرق الفيديو 42 ثانية فقط وسهل الفهم. لن تواجه أي مشكلة في متابعته.
كيفية التحقق من إرسال رسالة SMS إلى شبكة الهاتف المحمول
الخطوة الأخيرة في التحقق من الإجراء هي النظر إلى سجلات اتصال شبكة الهاتف المحمول. قد تحتاج إلى تفعيل التسجيل في إعدادات الاتصال قبل إرسال الرسالة لرؤية السجلات. إذا كان التسجيل مفعلًا، سترى رقم الهاتف ونص الرسالة التي أرسلتها.
اختبار ما إذا كان الطلب مقبولاً (فيديو تعليمي)
في الفيديو التالي، ستشاهد كيفية التحقق مما إذا كان عميل SMPP قد نجح في إرسال رسالتك. ستتعلم كيفية فتح علامة تبويب الأحداث لمستخدم SMPP وما الذي تبحث عنه. يستغرق الفيديو 18 ثانية فقط ولكنه سيكون مفيدًا جدًا.
استلام رسالة SMS على الهاتف (فيديو تعليمي)
في الفيديو التالي، ستشاهد كيف تبدو الرسالة الواردة التي تم إرسالها من بوابة Ozeki للرسائل القصيرة. سيبدأ بشاشة رئيسية لهاتف أندرويد وينتهي بفتح الرسالة. يستغرق الفيديو 18 ثانية فقط ويمكنك رؤية عملية استلام الرسالة بالكامل.
ملخص
شرح الدليل أعلاه خطوات إرسال رسائل SMS من Tcl/Tk. كما يمكن رؤيته، يوفر لك Ozeki جميع الأدوات اللازمة لتسليم الرسائل، لذا إذا تم اتباع الخطوات بعناية، فإن إرسال الرسائل من Tcl/Tk لم يعد مشكلة. تلعب بوابة Ozeki للرسائل القصيرة دورًا كبيرًا في التسليم، حيث لا يمكنك الوصول إلى مستخدمي الهواتف المحمولة بدون هذا البرنامج. من المهم ملاحظة أن بوابة Ozeki للرسائل القصيرة تعمل في أي دولة، لذا يمكن إرسال الرسائل دوليًا باستخدام هذا الحل.
لا تنهي القراءة هنا، تصفح صفحة البرامج التعليمية لـ Ozeki وتعلم عن استلام الرسائل في Tcl/Tk.
الشيء التالي الذي يجب عليك فعله هو تنزيل بوابة Ozeki للرسائل القصيرة وابدأ العمل!
More information
- إرسال SMS باستخدام Tcl/Tk مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- إرسال عدة رسائل SMS باستخدام Tcl/Tk مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- جدولة SMS باستخدام Tcl/Tk مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- استقبال SMS باستخدام Tcl/Tk مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- حذف SMS باستخدام Tcl/Tk مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- كيفية تنزيل أحدث مكتبة Tcl/Tk SMS من Github