كيفية إرسال رسائل SMS من بايثون فلاسك
أبسط طريقة لإرسال رسائل SMS من بايثون فلاسك هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إصدار طلب HTTP Post إلى بوابة الرسائل. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود بايثون لإرسال رسائل SMS إلى الهاتف المحمول
يوضح مثال كود SMS بايثون أدناه كيفية إرسال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام مكتبة ozekilibsrest في بايثون. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendSms.py
from flask import Flask, render_template, request from ozekilibsrest import Configuration, Message, MessageApi app = Flask(__name__) configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) api = MessageApi(configuration) logs = [] @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': message = Message( to_address=request.form['to_address'], text=request.form['text'] ) log = api.send(message) logs.append(log) return render_template('SendSms.html', logs=logs) if __name__ == '__main__': app.run()
SendSms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Send SMS with Ozeki SMS Gateway</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <form action="/" method="POST" class="form-group" style="width: 40%; margin-top: 10vh; margin-left: 30%; display: flex; flex-direction: column; height: 30vh; justify-content: space-evenly;"> <b>To address:</b> <input class="form-control" type="text" name="to_address" placeholder="+36201111111" autocomplete=false> <b>Text:</b> <input class="form-control" type="text" name="text" placeholder="Hello world!" autocomplete=false> <input class="btn btn-primary" style="font-weight: 600;" type="submit" name="submit" value="SEND"> </form> <ul style="width: 40%; margin-left: 30%; height: 40vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Logs:</b></li> {% if logs %} {%for log in logs%} <li class="list-group-item">{{ log }}</li> {%endfor%} {% endif %} </ul> </body> </html>
كيفية استخدام مثال SMS في بايثون:
يمكن استخدام هذا المثال في أي تطبيق بايثون. لاستخدامه، يجب تثبيت حزمة ozekilibsrest باستخدام الأمر pip install ozekilibsrest وحزمة flask باستخدام الأمر pip install flask. بعد تثبيت الحزم، يجب إضافة التوجيهات from ozekilibsrest import Configuration, Message, MessageApi و from flask import Flask, render_template, request إلى قسم الرأس في كود المصدر الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة ozekilibsrest. يمكنك استخدام فئة Message لإنشاء الرسالة النصية، وفئة MessageApi لإرسال الرسالة إلى بوابة الرسائل. ستقوم بوابة الرسائل بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendSms.py
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendSms.py.zip (1.42 كيلوبايت)
ما الموجود في مجلد SendSms.py؟
يحتوي مجلد SendSms.py على سكريبت مثال SMS في بايثون والذي سيوضح لك كيفية إرسال رسائل SMS متعددة باستخدام بايثون.
كيفية تثبيت مكتبة ozekilibsrest
لتثبيت مكتبة ozekilibsrest، يجب فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة ozekilibsrest والتبعيات التي تحتاجها.
pip install ozekilibsrest
كيفية تثبيت مكتبة flask
لتثبيت مكتبة flask، يجب فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة flask والتبعيات التي تحتاجها.
pip install flask
كيفية إرسال رسائل SMS من بايثون (إرشادات بسيطة)
لإرسال رسائل SMS من بايثون:
- قم بتنزيل وتثبيت بايثون
- قم بتثبيت مكتبة ozekilibsrest باستخدام pip أو codna
- قم بتثبيت مكتبة flask باستخدام pip أو codna
- قم بتثبيت مستخدم HTTP API
- قم بتمكين تسجيل أحداث الاتصال في علامة التبويب المتقدمة
- قم بتنزيل ملف SendSMS.py
- افتح ملف SendSms.py في المفكرة
- قم بتغيير البيانات إلى بياناتك الخاصة
- قم بتشغيل تطبيق Ozeki SMS Gateway
- قم بتشغيل كود بايثون SendSms.py عن طريق فتحه
- تحقق من السجلات لمعرفة ما إذا كانت الرسالة قد أرسلت
قم بتثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API
لتتمكن من إرسال رسائل SMS من بايثون، تحتاج أولاً إلى تثبيت Ozeki SMS Gateway. يمكن تثبيت بوابة الرسائل القصيرة على نفس الكمبيوتر الذي تقوم فيه بتطوير كود بايثون في Python IDLE أو المفكرة. بعد التثبيت، تكون الخطوة التالية هي ربط Ozeki SMS Gateway بشبكة الهاتف المحمول. يمكنك إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "User1"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود بايثون الخاص بك.
رابط HTTP API لاستخدام إرسال SMS من بايثون
لإرسال رسائل SMS من بايثون، سيتعين على بايثون إصدار طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر الذي يعمل عليه تطبيق الرسائل القصيرة بايثون، يمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لذلك الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لاستخدام إرسال SMS من بايثون
لمصادقة عميل الرسائل القصيرة بايثون، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في بايثون، يمكنك استخدام الكود التالي لإجراء هذا التشفير:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
على سبيل المثال، إذا قمت بتشفير اسم المستخدم 'http_user' وكلمة المرور 'qwe123'، ستحصل على السلسلة المشفرة base64 التالية: 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 Connection: Keep-Alive Content-Length: 336 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c", "to_address": "+36201111111", "text": "Hello, World!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
استجابة HTTP التي يتلقاها مثال الرسائل القصيرة بايثون
بمجرد أن تتلقى بوابة الرسائل القصيرة هذا الطلب، ستقوم بإنشاء استجابة HTTP. ستحتوي استجابة HTTP على رمز حالة للإشارة إلى ما إذا كان طلب إرسال الرسالة القصيرة ناجحًا أم لا. كما ستعود بهيكل مشفر بـ JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 11:17:49 GMT Server: 10/10.3.116 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": "b570dbae-3a05-456d-9dad-a02161b16f1c", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World!", "create_date": "2021-06-11 11:20:02", "valid_until": "2021-06-18 11:20:02", "time_to_send": "2021-06-11 11:20:02", "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 إلى هاتف محمول من بايثون، تحتاج إلى إعداد حساب مستخدم HTTP API في Ozeki SMS Gateway.
إنشاء مستخدم جديد (فيديو تعليمي)
يعرض هذا الفيديو كيفية إعداد حساب مستخدم جديد لـ HTTP API. سيبدأ من الصفحة الرئيسية لبوابة Ozeki SMS وينتهي بعلامة تبويب الأحداث للمستخدم الجديد. سيوضح لك الفيديو كيفية إنشاء وتكوين المستخدم الجديد. الشيء الرائع في هذا الفيديو هو أنه لا يستغرق سوى 30 ثانية ولكنه يحتوي على جميع المعلومات التي تحتاجها لإنشاء مستخدم HTTP API جديد.
كيفية إرسال SMS من Python باستخدام واجهة برمجة تطبيقات Python SMS (فيديو تعليمي)
يوضح هذا الفيديو كيفية تنزيل ملف SendSms.py.zip من هذه الصفحة، وكيفية فتح محتوى الملف المضمن في أي محرر نصوص مثل Notepad في Windows. إذا شاهدت الفيديو، ستلاحظ أن محتويات ملف SendSms.py.zip موضوعة على سطح مكتب Windows.
مثال SMS باستخدام Python: SendSms.py
كود المثال أدناه هو جزء من ملف SendSms.py.zip.
لإرسال SMS باستخدام مشروع المثال أعلاه، يجب تشغيل سكربت Python باستخدام الأمر python SendSms.py. بعد تشغيل السكربت، ستلاحظ أن موجه الأوامر يقول أنه يجب فتح الرابط http://127.0.0.1:5000. هناك يمكنك رؤية أول مشروع Python Flask الخاص بك، القادر على إرسال رسالة SMS إلى بوابة Ozeki SMS.
كيفية التحقق من قبول SMS من قبل مستخدم HTTP (فيديو تعليمي)
بعد إرسال SMS، من الجيد التحقق من بوابة SMS الخاصة بك، لمعرفة ما تم استلامه. يمكنك التحقق من السجل عن طريق فتح تفاصيل مستخدم HTTP من وحدة تحكم إدارة بوابة Ozeki SMS. يوضح الفيديو التالي ما يجب البحث عنه. سيبدأ الفيديو بالكود المفتوح وينتهي بتفاصيل الرسالة المرسلة. ستتعلم كيفية إطلاق المشروع، وكيف يبدو المشروع أثناء التشغيل وكيف يبدو ملف السجل بعده. الفيديو لا يستغرق سوى 42 ثانية وسهل الفهم. لن تواجه أي مشكلة في متابعته.
كيفية التحقق من إرسال SMS إلى شبكة الهاتف المحمول
الخطوة الأخيرة في التحقق من الإجراء هي النظر إلى سجلات اتصال شبكة الهاتف المحمول. قد تحتاج إلى تشغيل التسجيل في تكوين الاتصال قبل إرسال الرسالة لرؤية السجلات. إذا تم تمكين التسجيل، فسترى رقم الهاتف ونص الرسالة التي أرسلتها.
اختبار ما إذا كان الطلب مقبولاً (فيديو تعليمي)
في الفيديو التالي، سترى كيفية التحقق مما إذا كان عميل SMPP قد نجح في إرسال رسالتك. ستتعلم كيفية فتح علامة تبويب الأحداث لمستخدم SMPP وما يجب البحث عنه. الفيديو لا يستغرق سوى 18 ثانية ولكنه سيكون مفيدًا جدًا.
استلام SMS على الهاتف (فيديو تعليمي)
في الفيديو التالي، سترى كيف تبدو الرسالة الواردة التي تم إرسالها من بوابة Ozeki SMS. سيبدأ بشاشة رئيسية لهاتف Android وينتهي بفتح الرسالة. لا يستغرق سوى 18 ثانية ويمكنك رؤية عملية استلام الرسالة بالكامل.
ملخص
شرح الدليل أعلاه خطوات إرسال الرسائل القصيرة من بايثون فلاسك. كما يمكن رؤيته، يوفر أوزيكي جميع الأدوات اللازمة لتوصيل الرسائل، لذا إذا تم اتباع الخطوات بعناية، فلن يكون إرسال الرسائل من بايثون مشكلة بعد الآن. يلعب أوزيكي بوابة الرسائل القصيرة دورًا كبيرًا في التوصيل، حيث لا يمكنك الوصول إلى مستخدمي الهواتف المحمولة بدون هذا البرنامج. من المهم ملاحظة أن أوزيكي بوابة الرسائل القصيرة يعمل في أي دولة، لذا يمكن إرسال الرسائل دوليًا باستخدام هذا الحل.
لا تنهي القراءة هنا، تصفح صفحة البرامج التعليمية لأوزيكي وتعلم عن استقبال الرسائل القصيرة في بايثون.
الشيء التالي الذي عليك فعله هو تحميل أوزيكي بوابة الرسائل القصيرة وابدأ العمل!
More information
- إرسال SMS باستخدام Python flask مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- إرسال عدة رسائل SMS باستخدام Python flask مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- جدولة SMS باستخدام Python flask مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- استقبال SMS باستخدام Python flask مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- حذف SMS باستخدام Python flask مع واجهة برمجة التطبيقات REST (HTTP) (عينة كود)
- كيفية تنزيل أحدث مكتبة Python flask SMS من Github