كيفية إرسال رسائل SMS متعددة من بايثون
أبسط طريقة لإرسال رسائل SMS من بايثون هي استخدام واجهة برمجة تطبيقات HTTP/Rest المدمجة في بوابة Ozeki SMS. عند استخدام هذه الواجهة، ستقوم بإرسال رسائل SMS عن طريق إرسال طلب HTTP Post إلى بوابة SMS. سيحتوي طلب HTTP Post على رسالة مُنسقة بتنسيق json. ستقوم بوابة SMS بإرسال هذه الرسالة إلى هاتف المستلم، وسيتم إرجاع استجابة HTTP 200 OK لطلبك.
كود بايثون لإرسال رسائل SMS إلى الهاتف المحمول
يوضح مثال كود SMS في بايثون أدناه كيف يمكنك إرسال رسائل SMS باستخدام واجهة برمجة تطبيقات HTTP Rest الخاصة ببوابة Ozeki SMS باستخدام مكتبة ozekilibsrest في بايثون. هذه المكتبة مقدمة لك مجانًا، ويمكنك استخدامها وتعديلها في أي من مشاريعك.
SendMultipleSms.py
from ozekilibsrest import Configuration, Message, MessageApi configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) msg1 = Message( to_address="+3620111111", text="Hello world 1!" ) msg2 = Message( to_address="+36202222222", text="Hello world 2!" ) msg3 = Message( to_address="+36203333333", text="Hello world 3!" ) api = MessageApi(configuration) result = api.send([msg1, msg2, msg3]) print(result)
كيفية استخدام مثال SMS في بايثون:
يمكن استخدام مثال SMS هذا في أي تطبيق بايثون. لاستخدامه، يجب عليك تثبيت حزمة ozekilibsrest باستخدام الأمر pip install ozekilibsrest. بعد تثبيت الحزمة، يجب عليك وضع التوجيه from ozekilibsrest import Configuration, Message, MessageApi في قسم الرأس من كود المصدر الخاص بك في بايثون. سيسمح لك ذلك باستخدام الفئات المقدمة من مكتبة ozekilibsrest. يمكنك استخدام فئة Message لإنشاء الرسالة النصية. يمكنك استخدام فئة MessageApi لإرسال الرسالة النصية إلى بوابة SMS. ستقوم بوابة SMS بإعادة توجيه رسالتك إلى شبكة الهاتف المحمول إما عبر اتصال لاسلكي أو عبر الإنترنت.
تحميل SendMultipleSms.py
يمكن تنزيل كود المصدر الموضح في هذه المقالة واستخدامه وتعديله مجانًا.
تحميل: SendMultipleSms.py.zip (423B)
ما الموجود في مجلد SendMultipleSms.py؟
يحتوي مجلد SendMultipleSms.py على سكريبت مثال SMS في بايثون والذي سيوضح لك كيفية إرسال رسائل SMS متعددة باستخدام بايثون.
كيفية تثبيت مكتبة ozekilibsrest
لتثبيت مكتبة ozekilibsrest، يجب عليك فتح موجه الأوامر واستخدام الأمر التالي. سيؤدي هذا إلى تثبيت مكتبة ozekilibsrest والتبعيات التي تحتاجها.
pip install ozekilibsrest
كيفية إرسال رسائل SMS متعددة من بايثون (خطوات سريعة)
لإرسال رسائل SMS متعددة من بايثون:
- قم بتنزيل وتثبيت بايثون
- قم بتثبيت مكتبة ozekilibsrest باستخدام pip أو conda
- قم بتنزيل ملف SendMultipleSms.py.zip
- استخرج ملف .zip من مجلد التنزيلات
- افتح ملف SendMultipleSms.py في أي محرر نصوص
- شغّل بوابة Ozeki SMS
- قم بإنشاء مستخدم HTTP API في Ozeki
- شغّل كود SendMultipleSms.py باستخدام موجه الأوامر لإرسال رسائل SMS الاختبارية
- تحقق من صندوق الرسائل المرسلة في بوابة Ozeki SMS
تثبيت بوابة Ozeki SMS وإنشاء مستخدم HTTP API
لتتمكن من إرسال رسائل SMS من بايثون، تحتاج أولاً إلى إنشاء مستخدم HTTP SMS API. قم بإنشاء مستخدم باسم مستخدم "http_user" وكلمة مرور "qwe123" لجعل المثال يعمل دون تعديل.
بعد إعداد البيئة، يمكنك تشغيل كود بايثون الخاص بك.
رابط HTTP API لاستخدام إرسال SMS من بايثون
لإرسال رسائل SMS من بايثون، سيتعين على بايثون إصدار طلب HTTP إلى بوابة SMS. يظهر رابط API أدناه. لاحظ أنه يجب استبدال عنوان IP (127.0.0.1) بعنوان IP الخاص ببوابة SMS الخاصة بك. إذا كانت بوابة Ozeki SMS مثبتة على نفس الكمبيوتر الذي يعمل عليه تطبيق SMS في بايثون، فيمكن أن يكون هذا العنوان 127.0.0.1. إذا كانت مثبتة على كمبيوتر مختلف، فيجب أن يكون عنوان IP الخاص بهذا الكمبيوتر.
http://127.0.0.1:9509/api?action=rest
مصادقة HTTP لإرسال الرسائل القصيرة من بايثون
لمصادقة عميل الرسائل القصيرة في بايثون، تحتاج إلى إرسال اسم المستخدم وكلمة المرور في سلسلة مشفرة بتنسيق 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 لإرسال الرسائل القصيرة من بايثون
لإرسال الرسائل القصيرة، تحتاج إلى تضمين الأسطر التالية كرؤوس في طلب 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.
كيفية استخدام المشروع (فيديو تعليمي)
في المقطع التالي، سترى كيفية تشغيل كود SendMultipleSms.py بلغة Python. سيبدأ الفيديو بالكود المفتوح وسيأخذك حتى تبويب الأحداث مع سجل الرسائل المرسلة. سترى كيفية تشغيل الكود وما يحدث عند تنفيذه. مدة الفيديو أقل بقليل من دقيقة، ولكنه يحتوي على جميع المعلومات الضرورية لتشغيل المشروع.
الختام
شرح هذا المقال خطوات إرسال رسائل متعددة في طلب واحد من بايثون.
باستخدام هذه المعرفة والأدوات المقدمة، يجب أن تكون قادرًا على التواصل مع عدة عملاء بكود واحد. يلعب Ozeki SMS Gateway دورًا مهمًا في هذه العملية لأنه ينظم عملية تسليم الرسائل. يعمل Ozeki SMS Gateway بجودة وأداء عاليين، مما يسمح لك بإرسال حتى 1000 رسالة في الثانية.
واصل تعلمك في صفحات الدروس الخاصة بـ Ozeki، حيث يمكنك القراءة عن مواضيع مثل الحذف في بايثون.
الآن كل ما عليك فعله هو تنزيل Ozeki SMS Gateway والبدء في العمل!
More information
- إرسال الرسائل القصيرة باستخدام Python مع واجهة برمجة تطبيقات REST HTTP (عينة كود)
- إرسال رسائل متعددة باستخدام Python مع واجهة برمجة تطبيقات REST HTTP (عينة كود)
- جدولة الرسائل القصيرة باستخدام Python مع واجهة برمجة تطبيقات REST HTTP (عينة كود)
- استقبال الرسائل القصيرة باستخدام Python مع واجهة برمجة تطبيقات REST HTTP (عينة كود)
- حذف الرسائل القصيرة باستخدام Python مع واجهة برمجة تطبيقات REST HTTP (عينة كود)
- كيفية تنزيل أحدث مكتبة رسائل قصيرة لـ Python من Github