كيفية جدولة رسالة SMS في بايثون

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

كيفية جدولة رسالة SMS في بايثون
الشكل 1 - كيفية جدولة رسالة SMS في بايثون

كود بايثون لإرسال رسالة SMS مجدولة إلى الهاتف المحمول

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

SendScheduledSms.py

		from ozekilibsrest import Configuration, Message, MessageApi
		from datetime import datetime
		
		configuration = Configuration(
		    username="http_user",
		    password="qwe123",
		    api_url="http://127.0.0.1:9509/api"
		)
		
		msg = Message(
		    to_address="+3620111111",
		    text="Hello world!",
		    time_to_send=datetime.strptime("2021-09-10 14:25:00", "%Y-%m-%d %H:%M:%S")
		)
		
		api = MessageApi(configuration)
		
		result = api.send(msg)
		
		print(result)
	

كيفية استخدام مثال SMS في بايثون:

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

تحميل SendScheduledSms.py

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

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

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

محتوى مجلد send scheduled sms py
الشكل 2 - ما الموجود داخل SendScheduledSms.py.zip

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

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

		pip install ozekilibsrest
	

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

كيفية إرسال رسالة SMS مجدولة من بايثون (خطوات سريعة)

لإرسال رسالة SMS مجدولة من بايثون:

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

تثبيت Ozeki SMS Gateway وإنشاء مستخدم HTTP API

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

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

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

لإرسال رسائل SMS من بايثون، سيتعين على بايثون إصدار طلب HTTP إلى بوابة الرسائل القصيرة. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة الرسائل القصيرة. إذا تم تثبيت Ozeki SMS Gateway على نفس الكمبيوتر الذي يعمل عليه تطبيق SMS في بايثون، فيمكن أن يكون هذا العنوان 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. جسم 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: 349

{
	"messages": [
		{
			"message_id": "cd0067bf-0797-489e-8796-325dacc68552",
			"to_address": "+3620111111",
			"text": "Hello world!",
			"create_date": "2021-09-17T08:20:15",
			"valid_until": "2021-09-24T08:20:15",
			"time_to_send": "2021-09-17T08:25:00",
			"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: Thu, 16 Sep 2021 09:14:44 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 06:20:15 GMT

{
  "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": "cd0067bf-0797-489e-8796-325dacc68552",
        "from_station": "%",
        "to_address": "+3620111111",
        "to_station": "%",
        "text": "Hello world!",
        "create_date": "2021-09-17 08:20:15",
        "valid_until": "2021-09-24 08:20:15",
        "time_to_send": "2021-09-17 08:25:00",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
	

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

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

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

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

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

الشكل 3 - SendScheduledSms.py

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

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

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

الختام

لقد عرضت هذه المقالة خطوات إرسال الرسائل القصيرة المجدولة في طلب واحد من بايثون.

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

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

الآن كل ما عليك فعله هو تنزيل بوابة رسائل أوزكي القصيرة والبدء في العمل!

More information