كيفية إرسال رسائل SMS متعددة من Python flask
أبسط طريقة لإرسال رسائل SMS من Python flask هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في Ozeki SMS Gateway. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إصدار طلب HTTP Post إلى بوابة الرسائل القصيرة. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة الرسائل القصيرة بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK إلى طلبك.
كود Python لإرسال رسائل SMS إلى الهاتف المحمول
يوضح مثال كود Python لإرسال الرسائل القصيرة أدناه كيفية إرسال الرسائل القصيرة باستخدام واجهة برمجة تطبيقات HTTP REST الخاصة بـ Ozeki SMS Gateway باستخدام مكتبة ozekilibsrest في Python. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendMultipleSms.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) messages_to_send = [] logs = [] @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': if request.form['submit'] == 'SEND' and len(messages_to_send) > 0: log = api.send(messages_to_send) logs.append(log) messages_to_send.clear() elif request.form['submit'] == 'ADD': message = Message( to_address=request.form['to_address'], text=request.form['text'] ) messages_to_send.append(message) return render_template('SendMultipleSms.html', logs=logs, messages=messages_to_send) if __name__ == '__main__': app.run()
SendMultipleSms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Send multiple 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: 8vh; 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="ADD"> </form> <ul style="width: 40%; margin-left: 30%; margin-bottom: 30px; height: 20vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Messages:</b></li> {% if messages %} {%for message in messages%} <li class="list-group-item">{{ message }}</li> {%endfor%} {% endif %} </ul> <form method="POST" class="form-group" style="width: 40%; margin-left: 30%; display: flex; flex-direction: column; height: auto; justify-content: space-evenly;"> <input class="btn btn-primary" style="font-weight: 600;" type="submit" name="submit" value="SEND"> </form> <ul style="width: 40%; margin-left: 30%; margin-top: 30px; height: 20vh; 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>
كيفية استخدام مثال Python flask لإرسال الرسائل القصيرة:
يمكن استخدام هذا المثال في أي تطبيق Python. لاستخدامه، يجب تثبيت حزمة ozekilibsrest باستخدام الأمر pip install ozekilibsrest وحزمة flask باستخدام الأمر pip install flask. بعد تثبيت الحزم، يجب وضع التوجيه from ozekilibsrest import Configuration, Message, MessageApi والتوجيه from flask import Flask, render_template, request في قسم الرأس من كود Python الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة ozekilibsrest. يمكنك استخدام فئة Message لإنشاء الرسائل القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسائل القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendMultipleSms.py
يمكن تنزيل الكود المصدري الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendMultipleSms.py.zip (1.65 كيلوبايت)
يحتوي مجلد SendMultipleSms.py على سكريبت مثال لـ Python Flask SMS الذي سيوضح لك كيفية إرسال رسائل SMS متعددة باستخدام Python.
كيفية تثبيت مكتبة ozekilibsrest
لتثبيت مكتبة ozekilibsrest، يجب عليك فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة ozekilibsrest والتبعيات التي تحتاجها.
pip install ozekilibsrest
كيفية تثبيت مكتبة flask
لتثبيت مكتبة flask، يجب عليك فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة flask والتبعيات التي تحتاجها.
pip install flask
كيفية إرسال رسائل SMS متعددة من Python flask (خطوات سريعة)
لإرسال رسائل SMS متعددة من Python flask:
- قم بتنزيل وتثبيت Python
- قم بتثبيت مكتبة ozekilibsrest باستخدام pip أو codna
- قم بتثبيت مكتبة flask باستخدام pip أو codna
- قم بتنزيل ملف SendMultipleSms.py.zip
- استخرج ملف .zip من مجلد التنزيلات
- افتح ملف SendMultipleSms.py في أي محرر نصوص
- قم بتشغيل Ozeki SMS Gateway
- قم بإنشاء مستخدم HTTP API في Ozeki
- قم بتشغيل كود SendMultipleSms.py باستخدام موجه الأوامر لإرسال رسائل SMS الاختبارية
- تحقق من صندوق المرسلة في Ozeki SMS Gateway
تثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API
لتتمكن من إرسال SMS من Python، تحتاج أولاً إلى تثبيت Ozeki SMS Gateway. يمكن تثبيت بوابة الرسائل القصيرة على نفس الكمبيوتر الذي تقوم فيه بتطوير كود Python الخاص بك. بعد التثبيت، الخطوة التالية هي ربط Ozeki SMS Gateway بشبكة الهاتف المحمول. يمكنك إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "http_user"، وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود Python الخاص بك.
رابط HTTP API لإرسال SMS من Python
لإرسال SMS من Python، سيتعين على Python الخاص بك إصدار طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة. إذا كان Ozeki SMS Gateway مثبتًا على نفس الكمبيوتر الذي يعمل عليه تطبيق SMS الخاص بـ Python، يمكن أن يكون هذا 127.0.0.1. إذا كان مثبتًا على كمبيوتر مختلف، فيجب أن يكون عنوان IP لذلك الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لإرسال SMS من Python
لمصادقة عميل SMS الخاص بـ Python، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ base64 إلى الخادم في طلب HTTP. التنسيق المستخدم هو: base64(username+":"+password). في Python يمكنك استخدام الكود التالي لإجراء هذا التشفير:
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 من Python
لإرسال رسائل SMS، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب HTTP. لاحظ أننا نضمن نوع المحتوى ورأس المصادقة.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
طلب HTTP لإرسال الرسائل القصيرة من بايثون
لإرسال الرسائل القصيرة، سيقوم تطبيق بايثون الخاص بك بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يتكون من جزء رأس HTTP وجسم HTTP. جسم HTTP هو سلسلة بيانات مشفرة بتنسيق JSON. يحتوي على أرقام المستلمين ونصوص الرسائل.
POST /api?action=sendmsg HTTP/1.1 Host: 127.0.0.1:9509 User-Agent: python-requests/2.26.0 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Content-Type: application/json Content-Length: 1027 { "messages": [ { "message_id": "cf609600-7269-46e3-ab6e-87ef5a99f848", "to_address": "+3620111111", "text": "Hello world 1!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec", "to_address": "+36202222222", "text": "Hello world 2!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a", "to_address": "+36203333333", "text": "Hello world 3!", "create_date": "2021-09-10T15:19:20", "valid_until": "2021-09-17T15:19:20", "time_to_send": "2021-09-10T15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] } ] }
استجابة HTTP المستلمة من مثال الرسائل القصيرة في بايثون
بمجرد استلام بوابة الرسائل القصيرة لهذا الطلب، ستقوم بإنشاء استجابة HTTP. ستتضمن استجابة HTTP رمز حالة للإشارة إلى ما إذا كان طلب إرسال الرسالة ناجحًا أم لا. كما ستعود ببنية مشفرة بتنسيق JSON لتزويدك بتفاصيل مفيدة حول إرسال الرسالة.
HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Fri, 10 Sep 2021 10:22:37 GMT Server: 10/10.3.124 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.124 (www.myozeki.com) Access-Control-Allow-Origin: * Date: Fri, 10 Sep 2021 13:19:19 GMT { "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": "cf609600-7269-46e3-ab6e-87ef5a99f848", "from_station": "%", "to_address": "+3620111111", "to_station": "%", "text": "Hello world 1!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "8d93e43a-b4dc-493f-a243-10db358a58ec", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello world 2!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "35e56437-15e4-4ee7-9ad4-dfc00a8f7c3a", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello world 3!", "create_date": "2021-09-10 15:19:20", "valid_until": "2021-09-17 15:19:20", "time_to_send": "2021-09-10 15:19:20", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
مثال الرسائل القصيرة في بايثون: SendMultipleSms.py
كيفية تنزيل مشروع SendMultipleSMS.py (فيديو تعليمي)في الفيديو التالي، ستتعلم كيفية استخدام مشروع SendMultipleSms.py بلغة Python. سيبدأ الفيديو بصفحة التنزيل وسيأخذك حتى لوحة محرر الأكواد المفتوحة. ستتعلم كيفية تنزيل وفتح ملف الكود. مدة الفيديو 54 ثانية فقط، لكنه يحتوي على جميع المعلومات الضرورية لاستخدام ملف الكود النموذجي بنجاح.
كود المثال أدناه هو جزء من مجلد SendMultipleSms.py.zip.
لإرسال رسالة SMS باستخدام المشروع النموذجي أعلاه، يجب تشغيل سكريبت Python باستخدام الأمر python SendSms.py. بعد تشغيل السكريبت، ستلاحظ أن موجه الأوامر يخبرك بفتح الرابط http://127.0.0.1:5000. هناك يمكنك رؤية أول مشروع لك باستخدام Python وFlask، القادر على إرسال رسائل SMS متعددة إلى بوابة Ozeki SMS.
كيفية استخدام المشروع (فيديو تعليمي)
في المقطع التالي، سترى كيفية تشغيل كود SendMultipleSms.py بلغة Python. سيبدأ الفيديو بالكود المفتوح وسيأخذك حتى تبويب الأحداث مع سجل الرسائل المرسلة. سترى كيفية تشغيل الكود وما يحدث عند تنفيذ الكود. مدة الفيديو أقل بقليل من دقيقة، لكنه يحتوي على جميع المعلومات الضرورية لتشغيل المشروع.
الختام
عرضت هذه المقالة خطوات إرسال رسائل SMS متعددة في طلب واحد من Python وFlask.
بهذه المعرفة والأدوات المقدمة، يجب أن تكون قادرًا على الوصول إلى عدة عملاء بكود واحد. تلعب بوابة Ozeki SMS دورًا مهمًا في هذه العملية لأن هذا البرنامج ينظم عملية تسليم الرسائل. تعمل بوابة Ozeki SMS بجودة وأداء عاليين، مما يسمح لك بإرسال حتى 1000 رسالة SMS في الثانية.
واصل تعلمك في صفحات الدروس الخاصة بـ Ozeki، حيث يمكنك القراءة عن مواضيع مثل
حذف الرسائل في Python.
الآن كل ما عليك فعله هو تنزيل بوابة Ozeki SMS والبدء في العمل!
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