كيفية استقبال الرسائل القصيرة من بايثون فلاسك

أبسط طريقة لاستقبال الرسائل القصيرة من بايثون هي استخدام واجهة برمجة تطبيقات الرسائل القصيرة المدمجة عبر HTTP/Rest في بوابة Ozeki للرسائل القصيرة. عند استخدام هذه الواجهة، ستستقبل الرسائل القصيرة عن طريق إرسال طلب HTTP GET إلى بوابة الرسائل القصيرة. ستحتوي استجابة HTTP Post على الرسائل بتنسيق JSON. ستقوم بوابة الرسائل القصيرة بإرسال الرسائل إلى تطبيق الكونسول في بايثون، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.

كيفية استقبال الرسائل القصيرة من بايثون فلاسك
الشكل 1 - كيفية استقبال الرسائل القصيرة من بايثون فلاسك

كود بايثون لاستقبال الرسائل القصيرة

يوضح مثال كود الرسائل القصيرة في بايثون أدناه كيفية استقبال الرسائل القصيرة باستخدام واجهة برمجة تطبيقات الرسائل القصيرة عبر HTTP/Rest في بوابة Ozeki للرسائل القصيرة باستخدام مكتبة ozekilibsrest في بايثون. هذه المكتبة متاحة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.

ReceiveSms.py

		from flask import Flask, render_template, request
		from ozekilibsrest import Configuration, 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':
		        messages = api.download_incoming()
		        message_count_string  = messages.__str__()
		        logs.append(message_count_string)
		        for message in messages.messages:
		            message_string = message.__str__()
		            logs.append(message_string)
		    return render_template('ReceiveSms.html', logs=logs)
		
		
		if __name__ == '__main__':
		    app.run()
	

الكود 1 - ReceiveSms.py

ReceiveSms.html

		<!DOCTYPE html>
		<html lang="en">
		    <head>
		        <meta charset="UTF-8">
		        <title>استقبال الرسائل القصيرة مع بوابة Ozeki للرسائل القصيرة</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: 10vh; justify-content: space-evenly;">
		            <button class="btn btn-primary" style="font-weight: 600;"
		                   type="submit" name="submit" value="download">تحميل</button>
		        </form>
		        <ul style="width: 40%; margin-left: 30%; height: 70vh; overflow-y: scroll;"
		            class="list-group card">
		            <li class="list-group-item card"><b>السجلات:</b></li>
		            {% if logs %}
		                {% for log in logs %}
		                    <li class="list-group-item">{{ log }}</li>
		                {% endfor %}
		            {% endif %}
		        </ul>
		    </body>
		</html>
	

الكود 2 - ReceiveSms.html

كيفية استخدام مثال الرسائل القصيرة في بايثون:

يمكن استخدام مثال الرسائل القصيرة هذا في أي تطبيق بايثون. لاستخدامه، يجب تثبيت حزمة ozekilibsrest باستخدام الأمر pip install ozekilibsrest. بعد تثبيت الحزمة، يجب إضافة التوجيه from ozekilibsrest import Configuration, Message, MessageApi إلى قسم الرأس في كود المصدر الخاص بك. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة ozekilibsrest. يمكنك استخدام فئة Message لإنشاء الرسائل القصيرة. يمكنك استخدام فئة MessageApi لإرسال الرسائل القصيرة إلى بوابة الرسائل القصيرة. ستقوم بوابة الرسائل القصيرة بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.

تحميل ReceiveSms.py

يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: ReceiveSms.py.zip (1.40 كيلوبايت)

ما الموجود في مجلد ReceiveSms.py؟

يحتوي مجلد ReceiveSms.py على سكريبت مثال الرسائل القصيرة في بايثون والذي سيوضح لك كيفية استقبال الرسائل القصيرة باستخدام بايثون.

مجلد استقبال الرسائل القصيرة في بايثون
الشكل 2 - ما الموجود داخل ReceiveSms.py.zip

كيفية تثبيت مكتبة ozekilibsrest

لتثبيت مكتبة ozekilibsrest، يجب فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة ozekilibsrest والتبعيات التي تحتاجها.

		pip install ozekilibsrest
	

الكود 3 - الأمر لتثبيت مكتبة ozekilibsrest

كيفية تثبيت مكتبة flask

لتثبيت مكتبة flask، يجب فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة flask والتبعيات التي تحتاجها.

		pip install flask
	

الكود 4 - الأمر لتثبيت مكتبة flask

كيفية استقبال الرسائل القصيرة من بايثون (خطوات سريعة)

لاستقبال الرسائل القصيرة من بايثون:

  1. قم بتنزيل وتثبيت بايثون
  2. قم بتثبيت مكتبة ozekilibsrest باستخدام pip أو conda
  3. قم بتثبيت مكتبة flask باستخدام pip أو conda
  4. قم بتنزيل ملف ReceiveSms.py.zip
  5. قم باستخراج ملف .zip من مجلد التنزيلات
  6. افتح ملف ReceiveSms.py في أي محرر نصوص
  7. قم بتشغيل بوابة Ozeki للرسائل القصيرة
  8. قم بإنشاء مستخدم HTTP API في Ozeki
  9. قم بتشغيل كود ReceiveSms.py باستخدام موجه الأوامر لإرسال رسائل الاختبار
  10. تحقق من صندوق المرسلة في بوابة Ozeki للرسائل القصيرة

تثبيت بوابة Ozeki للرسائل القصيرة وإنشاء مستخدم واجهة برمجة التطبيقات HTTP

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

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

رابط واجهة برمجة التطبيقات HTTP لإرسال الرسائل القصيرة من Python flask

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

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

مصادقة HTTP لإرسال الرسائل القصيرة من Python flask

لمصادقة عميل Python flask لإرسال الرسائل القصيرة، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بـ 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 لإرسال الرسائل القصيرة من Python flask

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

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

طلب HTTP لإرسال الرسائل القصيرة من Python flask

لإرسال الرسائل القصيرة، سيقوم تطبيق Python flask الخاص بك بإرسال طلب HTTP مشابه للطلب أدناه. لاحظ أن هذا الطلب يحتوي على جزء رأس HTTP، حيث قمنا بتعريف المجلد الذي نريد تنزيل الرسائل منه، والإجراء. كما قمنا بإرسال اسم المستخدم وكلمة المرور المشفرة بـ Base64 لمصادقة الطلب.

GET /api?action=receivemsg&folder=inbox 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==
	

استجابة HTTP التي يتلقاها مثال Python flask لإرسال الرسائل القصيرة

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

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 17 Sep 2021 08:36:07 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, 17 Sep 2021 07:08:11 GMT

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "",
  "data": {
    "folder": "inbox",
    "limit": "1000",
    "data": [
      {
        "message_id": "31bc2fe0-c2a6-4ebe-afcd-6bcd9ea341fb",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "مرحبًا بالعالم 1!",
        "create_date": "2021-09-17 09:07:14",
        "valid_until": "2021-09-24 09:07:14",
        "time_to_send": "2021-09-17 09:07:14",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      },
      {
        "message_id": "b7b8d592-e182-4e96-a375-b4a6aa73e483",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "مرحبًا بالعالم 2!",
        "create_date": "2021-09-17 09:07:23",
        "valid_until": "2021-09-24 09:07:23",
        "time_to_send": "2021-09-17 09:07:23",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      },
      {
        "message_id": "b0308970-a3c9-45c4-bf97-14a914a66f57",
        "from_connection": "admin@localhost",
        "from_address": "",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "مرحبًا بالعالم 3!",
        "create_date": "2021-09-17 09:07:33",
        "valid_until": "2021-09-24 09:07:33",
        "time_to_send": "2021-09-17 09:07:33",
        "submit_report_requested": true,
        "delivery_report_requested": false,
        "view_report_requested": false,
        "tags": []
      }
    ]
  }
}	
	

مثال Python flask لإرسال الرسائل القصيرة: ReceiveSms.py

كيفية تنزيل مشروع ReceiveSMS.py (فيديو تعليمي)

في الفيديو التالي، ستتعلم كيفية استخدام مشروع ReceiveSms.py باستخدام إطار عمل Flask في Python. سيبدأ الفيديو بصفحة التنزيل وسيأخذك حتى لوحة محرر الأكواد المفتوحة. ستتعلم كيفية تنزيل وفتح ملف الكود. مدة الفيديو 54 ثانية فقط، لكنه يحتوي على جميع المعلومات الضرورية لاستخدام ملف الكود النموذجي بنجاح.

الفيديو 1 - كيفية تنزيل وفتح الحل أعلاه (فيديو تعليمي)

كود المثال أدناه هو جزء من مجلد ReceiveSms.py.zip.

الشكل 3 - ReceiveSms.py

الشكل 4 - تشغيل تطبيق Flask النموذجي في سطر الأوامر

الشكل 5 - نتيجة الكود أعلاه

كيفية استخدام المشروع (فيديو تعليمي)

في المقطع التالي، سترى كيفية تشغيل كود ReceiveSms.py في Python. سيبدأ الفيديو بالكود المفتوح وسيأخذك حتى علامة تبويب الأحداث مع سجل الرسالة المرسلة. سترى كيفية تشغيل الكود وما يحدث عند تنفيذه. مدة الفيديو أقل بقليل من دقيقة، لكنه يحتوي على جميع المعلومات الضرورية لتشغيل المشروع.

الفيديو 2 - كيفية استخدام سكربت ReceiveSms.py (فيديو تعليمي)

الختام

شرح هذا المقال خطوات استقبال الرسائل القصيرة في طلب واحد باستخدام Flask في Python.

باستخدام هذه المعرفة والأدوات المقدمة، يجب أن تكون قادرًا على التواصل مع عدة عملاء باستخدام كود واحد. يلعب Ozeki SMS Gateway دورًا مهمًا في هذه العملية لأنه ينظم عملية إرسال الرسائل. يعمل Ozeki SMS Gateway بجودة وأداء عاليين، مما يسمح لك بإرسال ما يصل إلى 1000 رسالة في الثانية.

واصل تعلمك في صفحات الدروس الخاصة بـ Ozeki، حيث يمكنك قراءة مواضيع مثل حذف الرسائل في Flask.

الآن كل ما عليك فعله هو تنزيل Ozeki SMS Gateway والبدء في العمل!

More information