كيفية حذف رسالة SMS في Python flask

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

كيفية حذف رسالة SMS في Python flask
الشكل 1 - كيفية حذف رسالة SMS في Python flask

كود Python لحذف رسالة SMS

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

DeleteSms.py

		from flask import Flask, render_template, request
		from ozekilibsrest import Configuration, Message, MessageApi, Folder
		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(message_id=request.form['message_id'])
		
		        if request.form['folder'] == 'inbox':
		            log = api.delete(Folder.Inbox, message)
		        elif request.form['folder'] == 'outbox':
		            log = api.delete(Folder.Outbox, message)
		        elif request.form['folder'] == 'sent':
		            log = api.delete(Folder.Sent, message)
		        elif request.form['folder'] == 'notsent':
		            log = api.delete(Folder.NotSent, message)
		        else:
		            log = api.delete(Folder.Deleted, message)
		        logs.append(log)
		    return render_template('DeleteSms.html', logs=logs)
		
		
		if __name__ == '__main__':
		    app.run()
	

الكود 1 - DeleteSms.py

DeleteSms.html

		<!DOCTYPE html>
		<html lang="en">
		    <head>
		        <meta charset="UTF-8">
		        <title>حذف رسائل SMS باستخدام 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>المعرف:</b>
		            <input class="form-control" type="text"
		                   name="message_id" placeholder="ff44c9fb-1494-4457-8f59-5915dc16500d">
		            <b>المجلد:</b>
		            <select class="form-control" name="folder">
		                <option value="inbox">صندوق الوارد</option>
		                <option value="outbox">صندوق الصادر</option>
		                <option value="sent">المرسلة</option>
		                <option value="notsent">غير المرسلة</option>
		                <option value="deleted">المحذوفة</option>
		            </select>
		            <input class="btn btn-primary"
		                   style="font-weight: 600;"
		                   type="submit"
		                   name="submit"
		                   value="حذف">
		        </form>
		        <ul style="width: 40%; margin-left: 30%; height: 40vh; 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 - DeleteSms.html

كيفية استخدام مثال Python لرسائل SMS:

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

تحميل DeleteSms.py

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

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

يحتوي مجلد DeleteSms.py على سكريبت مثال Python flask لرسائل SMS الذي سيوضح لك كيفية حذف رسائل SMS باستخدام Python.

محتوى مجلد delete sms py
الشكل 2 - ما الموجود داخل DeleteSms.py.zip

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

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

		pip install ozekilibsrest
	

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

كيفية تثبيت مكتبة فلاسك

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

		pip install flask
	

الكود 2 - أمر تثبيت مكتبة فلاسك

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

لحذف الرسائل النصية من فلاسك بايثون:

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

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

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

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

رابط HTTP API لإرسال الرسائل النصية من بايثون

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

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

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

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

	    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 لإرسال الرسائل النصية من فلاسك بايثون

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

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

طلب HTTP لإرسال الرسائل النصية من فلاسك بايثون

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

		POST /api?action=deletemsg 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: 76
		
		{
			"folder": "inbox",
			"message_ids": [
				"af5819d4-e32f-4653-a6d4-8fb49017164e"
			]
		}
	

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

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

		HTTP/1.1 200 OK
		Transfer-Encoding: chunked
		Content-Type: application/json; charset=utf8
		Last-Modified: Fri, 17 Sep 2021 09:14:01 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:54:08 GMT
		
		{
		  "http_code": 200,
		  "response_code": "SUCCESS",
		  "response_msg": "",
		  "data": {
		    "folder": "inbox",
		    "message_ids": [
		      "af5819d4-e32f-4653-a6d4-8fb49017164e"
		    ]
		  }
		}
	

مثال فلاسك بايثون للرسائل النصية: DeleteSms.py

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

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

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

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

كيفية حذف الرسائل القصيرة باستخدام Python flask
الشكل 3 - DeleteSms.py

الشكل 4 - تشغيل تطبيق المثال في موجه الأوامر

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

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

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

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

الختام

أظهرت هذه المقالة خطوات حذف الرسائل القصيرة في طلب واحد من Python flask.

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

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

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

More information