يقول مؤلف المادة ، التي نُنشر ترجمتها اليوم ، إن الأشخاص المعاصرين ، الذين تكون حياتهم مليئة بالعمل ، ينسون غالبًا كتابة رسائل إلى أصدقائهم وأقاربهم. نظرًا إلى كيفية إرسال والديه لعروض أسعار ملهمة ونصائح صحية مفيدة إلى WhatsApp كل صباح ، فقد قرر أن الوقت قد حان للتبادل.
في هذا الدليل ، سنكتب نصًا بيثونًا بسيطًا مصممًا لإرسال رسائل WhatsApp. في سياق العمل ، سوف نستخدم حزمة Twilio Python. لتنظيم الإطلاق اليومي للبرنامج النصي في وقت معين ، سنضع الكود في السحابة.

تتمثل إحدى طرق حل هذه المشكلة في استخدام حزمة Selenium Python وإصدار WhatsApp على الويب بدلاً من خدمة Twilio ، والتي يجب دفع ثمنها بعد استنفاد إمكانيات العرض المجاني. ولكن نظرًا لأن العمل باستخدام إصدار الويب WhatsApp يتطلب إجراء مسح دوري لرمز الاستجابة السريعة باستخدام هاتف محمول ، فلن يعمل على إرسال الرسائل تلقائيًا باستخدام هذا النهج.
سيتألف العمل في المشروع من ثلاث خطوات:
- الإعداد Twilio.
- التعلم وتعديل الرمز.
- نشر مشروع في السحابة وإعداد برنامج تشغيل.
الخطوة 1. إعداد Twilio
قم بإنشاء حساب مجاني على موقع
Twilio الإلكتروني ،
وأكد عنوان بريدك الإلكتروني ورقم هاتفك.
تسجيل حساب Twilioبالإضافة إلى ذلك ، كجزء من عرض Twilio المجاني ، يجب عليك استخدام WhatsApp sandbox (WhatsApp Sandbox). هذا يعني أنه لا يمكنك استخدام رقم هاتفك الخاص ، وأنه يجب عليك مراجعة الإجراء الخاص بإصدار إذن لتلقي رسائل WhatsApp.
يمكنك استخدام رقم المراسلة الخاص بك بعد أن يسمح WhatsApp لـ Twilio باستخدام رقمك. من أجل الحصول على إذن ، تحتاج إلى ملء النموذج. يمكنك أن تتعلم من
مواد دعم Twilio أنه على الرغم من أن Twilio يعمل مباشرة مع WhatsApp ، فقد يستغرق الأمر بعض الوقت للحصول على إذن. بالإضافة إلى ذلك ، يتحدث عن النطاق المحدود لإصدار التصاريح. نتيجة لذلك ، يتعين على العديد منهم استخدام صندوق دعم Twilio WhatsApp.
كل هذا لا يسبب الكثير من الفرح ، ولكن ما هو متاح لنا كجزء من عرض Twilio المجاني يتيح لنا حل مشكلتنا. بالإضافة إلى ذلك ، اتضح أن صندوق حماية WhatsApp لا يزال هو الخيار الوحيد المتاح على نطاق واسع.
تحتاج الآن إلى توصيل هاتف مستلم الرسائل بالرمل ، وبعد ذلك يمكنك إرسال رسائل إلى هذا الهاتف. لمعرفة كيفية القيام بذلك ، تحتاج إلى الانتقال إلى قسم وحدة التحكم Twilio ، المخصص لـ WhatsApp. على وجه الخصوص ، يُقترح هنا إرسال رسالة WhatsApp مع النص المحدد إلى رقم محدد.
صفحة وحدة التحكم Twilio مع تعليمات لتوصيل الهاتف الذي يمكنك إرسال الرسائل إليهطلب الاتصال المرسلة من الهاتفاحفظ رقم WhatsApp الصادر لك في جهات الاتصال الخاصة بك. يمكن تعيين أي اسم. من أجل عدم تعقيد حياتي ، اتصلت بجهة الاتصال هذه Twilio Sandbox ، ثم أرسلت رسالة إليه من هاتف والدي (يمكن ملاحظة ذلك في الشكل السابق). يتم تنفيذ هذا الإجراء مرة واحدة فقط.
أنت الآن بحاجة إلى الانتقال إلى
وحدة التحكم Twilio والحصول على رمز الأمان SID والمصادقة لحسابك. ستساعد هذه البيانات Twilio في التعرف عليك عندما تعمل برمجيًا مع الخدمة.
الخطوة 2. تعلم وتعديل التعليمات البرمجية
قم بتنزيل مستودع جيثب وفك ضغط الأرشيف.
محتويات ملف مضغوطستجد هنا الملف المصدر (
whatsapp_messaging.py
) وحزمة نشر المشروع (
aws_lambda_deploy.zip
).
هنا هو رمز البرنامج النصي:
from twilio.rest import Client def msg_mom_and_dad(event=None, context=None):
الآن سوف نقوم بتحليل هذا الرمز. هنا ، للراحة ، لقطة شاشة مع خطوط مرقمة.
Whatsapp_messaging.py رمز الملف مع خطوط مرقمة- السطر 1. استيراد عميل للعمل مع Twilio REST-API.
- السطر 3. إنشاء دالة
msg_mom_and_dad
. سنقوم بتمرير هذه الوظيفة إلى AWS. سيتم استدعاؤه يوميًا في الوقت المحدد. - خطوط 6-7. هنا تحتاج إلى استبدال
sid
الموجود و auth_token
في الكود برمز خاص بك (تحدثنا عن استلامهم في نهاية القسم السابق). - السطر 9. قم بإنشاء كائن عميل Twilio باستخدام بيانات الاعتماد.
- سطر 13. إنشاء قاموس. هنا ، يتم استخدام اسم مستلم الرسالة كمفتاح ، ورقم هاتفه كقيمة. يمكنك إضافة معلومات اتصال إضافية إلى هذا القاموس.
- السطر 15. حلقة
for
، التي يتم فيها عبور القاموس (يوجد حتى الآن إدخال واحد فقط فيه). في النص body
تحتاج إلى تحديد نص الرسالة. قمت بإنشاء رسالة بسيطة تحتوي على نص "صباح الخير" ، متبوعة بقيمة مأخوذة من مفتاح عنصر القاموس الحالي. في حالتي ، يؤدي هذا إلى تكوين رسالة "صباح الخير يا أبي!". يشير from_
إلى رقم WhatsApp الذي تلقيناه مسبقًا. في لكتابة عدد مستلم الرسالة - الذي أرسلوا منه سابقًا طلبًا للاتصال بصندوق Twilio WhatsApp. - السطر 23. هنا ، من أجل التحقق من حالة الرسالة ، نعرض SID الخاص بها. لن نستخدم هذه المعلومات.
لاستخدام هذا الرمز لإرسال الرسائل ، تحتاج إلى تغيير ما يلي فيه:
twilio_sid
auth_token
contact_directory
from_
الجسم (هذا اختياري)
بعد إجراء تغييرات على الكود ، احفظ الملف. ثم قم بفك ضغط أرشيف
aws_lambda_deploy.zip
، واستبدل ملف
whatsapp_messaging.py
aws_lambda_deploy.zip
بنفس الاسم ، ثم
aws_lambda_deploy.zip
حزم كل شيء مرة أخرى في أرشيف .zip. معنى هذه الإجراءات هو أن تدرج في الكود بيانات الاعتماد الخاصة بك ومعلومات حول من تريد إرسال رسائل إليهم. كل شيء آخر في الحزمة ، المصممة للنشر على AWS ، لم يتغير. الآن دعونا نعمل مع AWS.
الخطوة 3. نشر المشروع على AWS وتكوين المشغل
الرمز جاهز لتشغيل وإرسال رسائل WhatsApp. إذا كنت مهتمًا بالدور الذي تلعبه ملفات أخرى من تشغيل أرشيف
aws_lambda_deploy.zip
في المشروع ،
aws_lambda_deploy.zip
على أن من بين هذه الملفات حزمة Twilio وجميع التبعيات الأخرى للمشروع. نحتاج إلى كل هذا لأننا نخطط لاستخدام وظائف AWS Lambda في بيئة Python التي لا تحتوي على حزمة Twilio. ولماذا لا نصلح هذا الأمر من خلال تشغيل الأمر
pip install twilio
لتثبيت الحزمة الصحيحة؟ الحقيقة هي أنه هنا ليس لدينا خادم.
للقيام بذلك ، نستخدم AWS Lambda - بيئة حوسبة بدون خادم يمكنك من خلالها وضع أجزاء من التعليمات البرمجية ، والتي يتم تشغيل استدعاءها وفقًا لاحتياجات المستخدم من خلال العديد من الأحداث والمشغلات. من المخطط تشغيل الشفرة الخاصة بنا مرة واحدة فقط يوميًا ، لذا فإن استخدام شيء مثل خادم EC2 على AWS الذي يعمل على مدار الساعة سيكون مضيعة لموارد الحوسبة والمال. سيتم استدعاء وظيفة Lambda الخاصة بنا يوميًا في وقت محدد بناءً على طلب من المشغل ، وسيستغرق تنفيذها القليل جدًا من الوقت.
البدء في إنشاء وظيفة Lambda
تسجيل الدخول إلى حسابك AWS. بعد ذلك ، انتقل إلى
Services → Compute → Lambda → Create a function
.
شاشة إنشاء وظيفة Lambdaدعنا نعطي الوظيفة اسما.
نظرًا لأن البيئة التي سيتم فيها تنفيذ الوظيفة ، سنختار Python 3.6. لا نحتاج إلى الاتصال بخدمات AWS الأخرى. لذلك ، نحن راضون عن مستوى الأذونات المحدد بواسطة خيار
Create a new role with basic Lambda permissions
.
بعد الانتهاء من الإعدادات ، فقط اضغط على زر
Create function
. الآن سنكون على لوحة التحكم الرئيسية.
لوحة التحكمهنا ، في قسم
Function code
، تحتاج إلى تحديد
Handler
يمكن للنظام من خلاله تشغيل التعليمات البرمجية الخاصة بنا. في حالتنا ، في حقل
Handler
، اكتب
whatsapp_messaging. msg_mom_and_dad
whatsapp_messaging. msg_mom_and_dad
، مع تحديد اسم الملف مع الكود والوظيفة التي نريد الاتصال بها.
في حقل
Function package
، تحتاج إلى تحميل ملف .zip الخاص بنا ، أي الملف الذي أنشأناه في الخطوة السابقة.
الآن الرمز جاهز للتشغيل. يمكنك التحقق مما إذا كانت الوظيفة تعمل وترسل الرسائل من خلال النقر على زر
Test
.
ستكون الخطوة الأخيرة في عملنا هي إعداد مشغل يطلق على الوظيفة يوميًا في وقت معين. اتبع المسار
Add trigger → CloudWatch Events
.
وضع الزنادنحن بحاجة إلى إنشاء قاعدة جديدة (
Rule
). يحتاج إلى تعيين اسم (
Rule name
). إذا رغبت في ذلك ، يمكنك إضافة وصف لها (
Rule description
).
حدد نوع
Rule type
(
Rule type
)
Schedule expression
.
يتم ضبط وقت استدعاء الوظيفة باستخدام
cron(30 1 * * ? *)
. دعنا نحلل هذا البناء:
30 1
يعني التوقيت UTC 1:30 في الصباح. الساعة 7 صباحًا في وقت IST.- يشير الحرفان التاليان ،
* *
، إلى يوم الشهر والشهر. - الشخصين المقبلين
? *
? *
، اسمح لك بتحديد يوم الأسبوع والسنة. هذا التصميم يعني أنه سيتم استدعاء الوظيفة يوميًا ، دون قيود على السنوات والشهور.
هنا يمكنك معرفة كيفية إعداد وظائف cron الخاصة بك.
بعد اكتمال إعداد المشغل ، تحقق مما إذا كانت خانة الاختيار
Enable trigger
ممكّنة ، والتي تمكن المشغل. الآن يبقى فقط النقر على زر "
Add
" وسيتم إنشاء المشغل.
معلومات الزنادLambda تفاصيل الوظيفةفي لوحة التحكم الخاصة بوظيفة Lambda ، يمكنك أن ترى أن كيان
CloudWatch Events
متصل بالوظيفة ، وأنه يمكن استدعاء الوظيفة عند إطلاق المشغل المقابل.
النتائج
رسالة مرسلة بواسطة بيثون النصيلقد أكملنا العمل في المشروع. يمكنك الآن تغيير اسم جهة اتصال Twilio Sandbox إلى اسمك الخاص على هاتف مستلم الرسالة ، في جهات اتصال WhatsApp (لقد غيرته إلى Son). يتيح لك نظامنا أيضًا التواصل مع مستلم الرسائل من لوحة التحكم Twilio.
أعزائي القراء! هل تستخدم Twilio في مشاريعك؟
