جدول المحتويات:
- اللوازم
- الخطوة 1: قم بتثبيت البرنامج المطلوب
- الخطوة 2: قم بإنشاء حساب Twilio
- الخطوة 3: احصل على مفتاح API لبيانات COVID 19 والأفلام والبرامج التلفزيونية
- الخطوة 4: قم بتوصيل Python و Twilio عبر Ngrok
- الخطوة 5: اختبر طلبنا
- الخطوة 6: كيف يعمل والتحسين المستقبلي:
- الخطوة 7: الملاحظات النهائية
فيديو: CovBot - روبوت محادثة قائم على WhatsApp لمعلومات COVID 19 والمزيد: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
CoVbot هو روبوت محادثة بسيط وبديهي يعتمد على Whatsapp. الميزة الرئيسية للروبوت هي:
يمكن أن يمنحك أحدث حالة لـ COVID-19 في البلد الذي تختاره بطريقة بسيطة وبديهية.
بالإضافة إلى ذلك ، يمكن أن يقترح الروبوت أنشطة ممتعة للقيام بها في المنزل مثل:
- اقتراح فيلم - فيلم لمشاهدته من قائمة أفضل 10 أفلام ، مع نظرة عامة قصيرة على الحبكة والمدة. نظرًا لأن هذه القائمة ليست مشفرة بشكل ثابت في البرنامج ، فستوفر لك دائمًا آخر التحديثات بناءً على الاتجاهات الحالية.
- اقترح عرضًا تلفزيونيًا - برنامج تلفزيوني لمشاهدته من أشهر البرامج التلفزيونية ، مع نظرة عامة قصيرة على الحبكة والتصنيفات. نظرًا لأن هذه القائمة ليست مشفرة في البرامج ، فستوفر لك دائمًا آخر التحديثات بناءً على الاتجاهات الحالية.
- اقترح كتابًا - كتاب للقراءة من قائمة أفضل 10 كتب ، مع دعاية وصورة غلاف للكتاب.
- التدريبات اليومية - هذا فيديو يعتمد على جدول تجريب لمدة 7 أيام مقدم من CRANK gym على حساب Instagram الخاص بهم.
إذا كنت تستمتع بهذه التعليمات ، فالرجاء التفكير في التصويت لها في مسابقة مؤلف العنصر الأول. (ونعم ، هذا هو أول توجيه لي ، لذا إذا كان هناك شيء غير واضح أو يحتاج إلى مزيد من التوضيح ، فيرجى إعلامي في قسم التعليقات ويمكنني مساعدتك:)
اللوازم
هذا المشروع هو مشروع قائم على البرامج فقط ، لذلك يمكن لأي شخص يتبع هذا التوجيه باستخدام كمبيوتر محمول / كمبيوتر مكتبي / macOS / Linux والإنترنت إكمال هذا المشروع. سأقوم أيضًا بتضمين قسم مفصل كما في النهاية لشرح الكود / العملية بمزيد من التفاصيل للأشخاص الذين لديهم بعض الخبرة في البرمجة ، يرجى ملاحظة أن هذا ليس ضروريًا لإكمال المشروع
مستوى صعوبة المشروع:
ليس من السهل جدا ، ولكن ليس من الصعب جدا
الأجهزة التي سنستخدمها:
- كمبيوتر محمول / سطح مكتب يعمل بنظام Windows / macOS / Linux.
- هاتف محمول مثبت عليه تطبيق WhatsApp Messenger
البرنامج الذي سنستخدمه:
- لغة برمجة بايثون
- ngrok - أداة تُستخدم للسماح لنا بالوصول إلى خادمنا من خارج شبكتنا
- محرر من اختيارك: (مثل Notepad ++ ، Sublime Text ، Vim ، إلخ)
الخطوة 1: قم بتثبيت البرنامج المطلوب
في هذه الخطوة سنقوم بما يلي:
- ثبّت Python> 3.6 واختبرها
- قم بتثبيت مكتبات python المطلوبة
- قم بتثبيت ngrok
إذا كان التطبيق مثبتًا لديك ، فيمكنك تخطي هذه الخطوة
تثبيت بايثون:
تمت كتابة قاعدة رموز الخلفية / الخادم بالكامل لهذا المشروع بلغة Python 3.6. لذلك لتشغيل تطبيقاتنا ، نحتاج إلى تثبيت Python> 3.6 على جهاز الكمبيوتر الخاص بنا. اتبع البرنامج التعليمي بواسطة CoreySchafer حول كيفية تثبيت python لنظامي التشغيل Windows و macOS
يمكنك اختبار تثبيت كل شيء بشكل صحيح عن طريق كتابة ما يلي في cmd / Terminal:
python -c 'print (f "Hello World")"
إذا تم تثبيت كل شيء بشكل صحيح ، فيجب طباعة Hello World على الشاشة. إذا تلقيت خطأً غير صالح في بناء الجملة ، فهذا يعني أن لديك إصدارًا خاطئًا من Python مثبتًا. قم بتثبيت إصدار من python> = 3.6
قم بتثبيت مكتبات Python المطلوبة باستخدام Pip:
سنستخدم مكتبات Python التالية لجعل برنامجنا يعمل:
- Flask - هذا هو إطار عمل خادمنا
- Twilio - توفر هذه المكتبة طريقة لتواصل Python مع WhatsApp
- الطلب - تُستخدم هذه المكتبة لطلب البيانات من واجهات برمجة التطبيقات
- BeautifulSoup4 - تُستخدم هذه المكتبة لكشط المعلومات من مواقع الويب
- lxml - تُستخدم هذه المكتبة مع BeautifulSoup لاستخراج المعلومات ذات الصلة من موقع ويب
لتثبيت هذه المكتبات ، يمكنك القيام بما يلي:
افتح CMD / Terminal واكتب الأمر التالي:
قارورة تثبيت الأنابيب ، twilio ، الطلب ، beautifulsoup4 ، lxml
أو
قم بتنزيل ملف requirements.txt وافتح Terminal في الدليل حيث يوجد الملف واكتب:
Pip install- متطلبات rtxt
قم بتثبيت ngrok
يسمح لك ngrok بعرض خادم يعمل على جهازك المحلي على الإنترنت. فقط أخبر ngrok عن المنفذ الذي يستمع عليه الخادم.
يتبع الدليل الموجود على موقع ngrok الإلكتروني لتثبيت ngrok لنظام التشغيل الذي تستخدمه.
نصيحة: الخطوة 3 من الدليل ليست ذات صلة بهذا المشروع لذا يمكن تخطيها
الخطوة 2: قم بإنشاء حساب Twilio
في هذه الخطوة سنقوم بما يلي:
- سجل للحصول على حساب Twilio
- مقدمة سريعة للأقسام المفيدة على وحدة تحكم Twilio
اشتراك:
في هذا المشروع ، سنستخدم Twilio Whatsapp API لربط برنامج python الخاص بنا بـ Whatsapp. لتتمكن من استخدام Twilio API ، نحتاج أولاً إلى إنشاء حساب على موقع Twilio الرسمي. بالنسبة للحساب التجريبي ، تقدم Twilio رصيدًا مجانيًا بقيمة 15 دولارًا لنا لاستخدامه.
مقدمة سريعة:
بمجرد إنشاء حساب ، فإن الأقسام الأكثر إثارة للاهتمام في وحدة تحكم Twilio لهذا المشروع هي:
لوحة القيادة - من لوحة القيادة ، يمكنك رؤية مقدار الرصيد المتبقي لديك ، ويمكنك تعديل اسم مشروعك وتغيير لغة البرمجة
قسم Whatsapp الفرعي في قسم الرسائل القصيرة القابلة للبرمجة - من قسم Whatsapp في وحدة التحكم ، يمكنك الوصول إلى رمز الانضمام إلى الروبوت ، ورقم Whatsapp الذي سنستخدمه في المشروع للتحدث إلى الروبوت الخاص بنا وكذلك إعداد webhook. سيتم وصف مزيد من التفاصيل حول كل هذه في الخطوات التالية
الخطوة 3: احصل على مفتاح API لبيانات COVID 19 والأفلام والبرامج التلفزيونية
مفتاح API أو مفتاح واجهة برمجة التطبيق هو رمز يتم تمريره بواسطة تطبيقات الكمبيوتر. يقوم البرنامج أو التطبيق بعد ذلك باستدعاء واجهة برمجة التطبيقات أو واجهة برمجة التطبيق لتحديد المستخدم أو المطور أو برنامج الاتصال الخاص به إلى موقع ويب.
نستخدم واجهة برمجة تطبيقات للحصول على معلومات حول أحدث حالة COVID 19 والأفلام والبرامج التلفزيونية. للوصول إلى واجهة برمجة التطبيقات ، تحتاج إلى مفتاح شخصي لكل مستخدم. في هذه الخطوة ، سوف نحصل على هذه المفاتيح
الحصول على مفتاح API لبيانات COVID 19:
- قم بتسجيل الدخول أو التسجيل للحصول على حساب RapidAPI الخاص بك.
- بعد ذلك ، انتقل إلى COVID-19 API بواسطة Gramzivi
- قم بالتمرير لأسفل إلى قسم "معلمات الرأس" في وحدة تحكم واجهة برمجة التطبيقات.
- يجب أن يكون مفتاح API الخاص بك مرئيًا في حقل "X-RapidAPI-Key".
الحصول على API Key للأفلام وبيانات البرامج التلفزيونية:
- قم بتسجيل الدخول أو التسجيل للحصول على حساب TMDB الخاص بك
- بعد ذلك انتقل إلى الإعداد الخاص بك - API
- مرر لأسفل إلى القسم "مفتاح واجهة برمجة التطبيقات (مصادقة الإصدار 3)"
- يجب أن يكون مفتاح API الخاص بك مرئيًا تحته
قم بإنشاء ملف "config.py"
سننشئ الآن ملف config.py لتخزين مفاتيح API الخاصة بنا. نقوم بإنشاء ملف منفصل لهذه ، لأن مفاتيح API هي معلومات سرية وإذا كنت تشارك مشروعك ، فلا ينبغي عليك مشاركة مفتاح API الخاص بك.
- إنشاء دليل مشروع جديد
- داخل الدليل الذي تم إنشاؤه حديثًا ، قم بإنشاء ملف جديد يسمى "config.py"
- قم بتحرير هذا الملف باستخدام محرر من اختيارك (Sublime ، Notepad ++) وانسخ واستبدل النص التالي بالمعلومات ذات الصلة التي تم الحصول عليها في الخطوة السابقة:
session_key = "secret" # هذا ليس آمنًا.. ولكن للاختبار فقط ، لا بأس
Rapid_api_key = "" api_key = ""
حفظ الملف
الخطوة 4: قم بتوصيل Python و Twilio عبر Ngrok
في هذه الخطوة سنقوم بما يلي:
- قم بتنزيل الكود المصدري
- قم بتنفيذ البرنامج وإعادة توجيه IP المحلي إلى عنوان عام عبر ngrok حتى نتمكن من تقديم طلب إليه
- قم بتكوين حساب Twilio الخاص بنا لإعادة توجيه الطلب إلى خادمنا
قم بتنزيل الكود المصدري للبوت:
قم بتنزيل كل الملفات المرفقة في هذا الإعداد في دليل المشروع الذي تم إنشاؤه في الخطوة الأخيرة.
تنفيذ البرنامج:
انتقل إلى دليل الكود المصدري في CMD / Terminal وقم بتنفيذ الأمر التالي:
بيثون server_main.py
تأكد من أن لديك "config.py" التي أنشأناها في الخطوة الأخيرة وإلا ستظهر لك رسالة خطأ
يجب أن يكون الناتج شيئًا كالتالي:
* تطبيق Flask "server_main" (تحميل كسول)
* البيئة: تحذير الإنتاج: هذا خادم تطوير. لا تستخدمه في نشر الإنتاج. استخدم خادم WSGI للإنتاج بدلاً من ذلك. * وضع التصحيح: قيد التشغيل * يعمل في https://127.0.0.1:5000/ (اضغط CTRL + C للإنهاء) * إعادة التشغيل باستخدام stat * المصحح نشط! * رقم التعريف الشخصي لبرنامج تصحيح الأخطاء: 740-257-236
هذا يعني أن خادمك يعمل بشكل صحيح على شبكتك المحلية على المنفذ 5000. ولجعل الوصول إلى هذا الخادم من خارج شبكتك المحلية ، سنستخدم ngrok
قم بإعادة توجيه IP المحلي إلى عنوان عام عبر ngrok
انتقل إلى الدليل حيث قمت بتنزيل ngrok عبر CMD / Terminal وقم بتنفيذ الأمر التالي:
ngrok http 5000
يجب أن يكون الناتج شيئًا كالتالي:
ngrok بواسطةinconshreveable (Ctrl + C للإنهاء)
حالة الجلسة على الإنترنت تنتهي الجلسة 7 ساعات و 59 دقيقة الإصدار 2.3.35 المنطقة الولايات المتحدة (الولايات المتحدة) واجهة الويب https://127.0.0.1:4040 إعادة التوجيه _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ إعادة توجيه _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
انسخ رابط HTTP من جزء "Forwading" (فقط حتى ngrok.io). (لقد أضفت _ في هذا المثال لتجنب التعليمات لاعتراضه كرابط)
قم بتكوين Twilio لاستخدام العنوان الجديد لإعادة توجيه طلب الخادم إلى:
الآن بعد أن نجحنا في إعادة توجيه خادمنا ليتم الوصول إليه بشكل عام ، نحتاج إلى تكوين Twilio بحيث عندما يتم تقديم طلب باستخدام Twilio Whatsapp API ، فإننا نعيد توجيه الطلب إلى خادمنا. للقيام بذلك نحتاج إلى القيام بما يلي:
- انتقل إلى قسم Whatsapp في Twilio's Console
- انتقل إلى القسم الفرعي "Sanbox"
- في مربع النص "عندما تأتي رسالة" ، الصق رابط HTTP من ngrok المنسوخ بامتداد / sms (لا تنسخ _ في البداية والنهاية):
_https://d44c955749bf.ngrok.io/sms_
الآن تم إعداد كل شيء لروبوت الدردشة. في الخطوة التالية ، يمكننا اختبار ما إذا كان كل شيء يعمل بشكل صحيح
الخطوة 5: اختبر طلبنا
في هذه الخطوة سنقوم بما يلي:
- انضم إلى الروبوت الخاص بنا باستخدام رمز الوصول
- جرب تطبيقنا
انضم إلى الروبوت الخاص بنا باستخدام رمز الوصول
في هذا المشروع ، سنستخدم رقم Twilio's Whatsapp Sandbox لروبوت Whatsapp الخاص بنا. سيكون هذا الرقم مختلفًا لكل شخص. يمكنك العثور على رقمك مثل هذا:
- تسجيل الدخول إلى حساب Twilio الخاص بك
- انتقل إلى Twilio Console -> قسم Whatsapp -> Sandbox
- سترى رقم Twilio Sandbox الخاص بك بالنص التالي:
قم بدعوة أصدقائك إلى Sandbox الخاص بك. اطلب منهم إرسال رسالة WhatsApp إلى:
نظرًا لسياسة أمان Whatsapp ، فإن كل من يريد التحدث إلى روبوت آلي عبر Whatsapp يحتاج إلى الاشتراك صراحةً باستخدام رمز. يمكنك معرفة الكود الخاص بك من خلال البحث في نفس قسم رقم Twilio sandbox الخاص بك مع النص:
بعد حصولك على رقم Twilio Sandbox Whatsapp الخاص بك ورمز الاشتراك ، لبدء استخدام الروبوت ، انتقل إلى هاتفك المحمول وقم بما يلي:
- احفظ "رقم Twilio Sandbox Whatsapp" في جهة الاتصال الخاصة بك مع اختيار الاسم (على سبيل المثال ، CovBot)
- افتح Whatsapp وأرسل الرسالة التالية إلى جهة الاتصال هذه:
انضم
يجب أن ترى رسالة مثل هذه:
Twilio Sandbox: لقد تم إعداد كل شيء….
هذا يعني أنك قمت بالتواصل مع برنامج الروبوت الخاص بك وعلى استعداد لطرح الأسئلة عليه
جرب تطبيقنا:
لاختبار الميزات المختلفة للروبوت الخاص بك بعد الاتصال ، أرسل الرسالة التالية إلى الروبوت:
أهلا
يجب أن ترى النص التالي:
مرحبًا بك في CoVbot!
روبوت محادثة بسيط يمكنه تقديم آخر تحديثات COVID-19 بطريقة بسيطة وسريعة وسهلة. نظرًا لأننا جميعًا في الحجر الصحي ، يمكن استخدام الروبوت لاقتراح بعض الأنشطة الترفيهية لتحقيق أقصى استفادة من وقتنا في المنزل حيث نسعى جاهدين للحفاظ على أنفسنا وأصدقائنا وعائلتنا بأمان. نأمل انك قد استمتعت و وجدت ما يفيدك! أرسل 4 لتبدأ!
يمكنك الآن اتباع الخيار لتجربة الميزات المختلفة للروبوت.
هذا هو! Whatsapp Chatbot جاهز !!!! تهانينا
الخطوة 6: كيف يعمل والتحسين المستقبلي:
هذا القسم مخصص للأشخاص الذين لديهم بعض الخبرة في برمجة Python. إذا كنت لا تستطيع تخطي هذا القسم
شرح الكود
الحلقة الرئيسية:
عندما يتم إرسال رسالة Whatsapp إلى رقم Twilio الخاص بك ، فإن Twilio API تقدم طلب POST إلى خادمك الذي حددته. يتم تنفيذ الخادم باستخدام إطار عمل Flask وبالتالي يمكننا استخدام كائن Flask Request لاسترداد البيانات المستلمة أثناء طلب POST. بناءً على البيانات (الأرقام في هذه الحالة) ، نقرر الخيار الذي حدده المستخدم ونقدم المعلومات المناسبة
بيانات COVID والأفلام والبرامج التلفزيونية:
يتم استرداد بيانات COVID 19 والأفلام والبرامج التلفزيونية من واجهة برمجة التطبيقات. أستخدم مكتبة python للطلب للحصول على البيانات ثم تحويلها إلى تنسيق JSON. ثم أقوم فقط بتحليل المعلومات ذات الصلة. بالنسبة إلى الأفلام والبرامج التلفزيونية ، استخدمت أيضًا مكتبة python العشوائية لاختيار عرض تلفزيوني عشوائي وفيلم
تفاصيل الكتاب
خوارزمية اقتراح الكتاب المستخدمة في المشروع هي مجرد مكشطة ويب. لم أتمكن من العثور على أي واجهة برمجة تطبيقات تعطيك كتابًا عشوائيًا يحتوي على التفاصيل ، لذلك أقوم فقط بتجميع موقع ويب باستخدام BeautifulSoup4 وباستخدام محلل lxml ، أقوم باستخراج المعلومات ذات الصلة بالكتاب
تفاصيل القائمة الفرعية:
كان تنفيذ القوائم الفرعية أكثر صعوبة قليلاً من البقية لأن رسائل Whatsapp تشبه الرسائل القصيرة وهي بروتوكول عديم الحالة. لحل هذه المشكلة ، استخدمت طريقتين:
- استخدام المتغيرات العالمية لتذكر حالة الرسالة - يتم تنفيذ هذا فقط للخيار الفرعي COVID 19. في هذا ، عندما يحدد المستخدم "خيار حالة COVID 19 في بلدي" ، يتم تعيين متغير عام يسمى incomplete_message إلى True للإشارة ، ثم لا تزال هناك حاجة إلى رسالة أخرى بناءً على الخيار السابق. ثم هناك فحص في البداية يتحقق مما إذا تم وضع علامة على رسالة غير مكتملة إذا كان الأمر كذلك يفترض أن الرسالة هي اسم البلد لبيانات COVID وتمرير المعلومات إلى الوظيفة الصحيحة وتعيين رسالة المتغير العام غير المكتملة إلى False
- استخدام Twilio Cookies and Flask Sessions - تُستخدم ملفات تعريف الارتباط وجلسات Flask في القائمة الفرعية "اقتراح نشاط عزل" لتنفيذ الحالة ، تمامًا مثل أي تطبيق ويب على الإنترنت يستخدمه هذه الأيام ، ولكن بدلاً من تذكر أشياء مثل اسم المستخدم الخاص بك أو حساب يتذكر التحويل بين رقمين. إذا كنت ترغب في مزيد من المعلومات حول هذا الجزء ، فقد أوصيت بقراءة هذا الدليل الرائع حول Twilio Cookies الذي كتبه فريق Twilio
التحسينات المستقبلية:
- استفد من اتجاه الكائن في Python وأنماط التصميم لتحسين بنية الكود والجفاف
- إزالة المتغيرات العامة
- يمكن تحسين معالجة الأخطاء
- تحديث عنوان ngrok تلقائيًا باستخدام corn و Twilio CLI
- توثيق الكود
الخطوة 7: الملاحظات النهائية
أتمنى أن يعجبكم هذا المشروع جميعًا. هذا هو أول تعليمات لي ، لذلك إذا كان هناك شيء غير واضح أو يحتاج إلى مزيد من التوضيح ، فأخبرني بذلك في قسم التعليقات ، ويمكنني مساعدتك. أيضًا إذا قمت بإجراء هذا المشروع باستخدام تقنية أو قائمة ميزات مختلفة ، فقم بمشاركته جميعًا
موصى به:
مصباح مكعب روبيك لاسلكي متغير الألوان قائم على الإمالة بسهولة: 10 خطوات (بالصور)
مصباح مكعب روبيك لاسلكي متغير اللون مبني على إمالة سهلة: سنقوم اليوم ببناء مصباح مكعب روبيك الرائع هذا والذي يتغير لونه بناءً على الجانب العلوي. يعمل المكعب على بطارية LiPo صغيرة ، يتم شحنها بواسطة كابل micro-USB قياسي ، وفي الاختبار الذي أجريته ، يبلغ عمر البطارية عدة أيام. هذه
نظام فرز الألوان: نظام قائم على الأردوينو مع حزامين: 8 خطوات
نظام الفرز اللوني: نظام قائم على اردوينو مع حزامين: يتم نقل و / أو تغليف المنتجات والعناصر في المجال الصناعي باستخدام خطوط مصنوعة باستخدام أحزمة ناقلة. تساعد هذه الأحزمة في نقل العنصر من نقطة إلى أخرى بسرعة محددة. قد تكون بعض مهام المعالجة أو تحديد الهوية
قم بتشغيل LED مع محادثة Watson: 6 خطوات
قم بتشغيل LED مع محادثة Watson: ما ستحتاج إليه: Zagros Artificial Intelligence Raspberry Pi Kit
ضوء LED كبير على شكل "حلقة" للقطات المتتابعة والصور الشخصية والمزيد : 11 خطوة (بالصور)
إضاءة "حلقة" LED كبيرة لـ Timelapse ، و Portraits والمزيد …: أصور الكثير من مقاطع الفيديو بفاصل زمني والتي تمتد لبضعة أيام ، ولكني أكره الضوء غير المتكافئ الذي توفره مصابيح المشبك - خاصة في الليل. ضوء الحلقة الكبير باهظ الثمن - لذلك قررت أن أصنع شيئًا بنفسي في إحدى الأمسيات بأشياء كنت في متناول يدي
كيفية عمل برنامج محادثة بسيط في Visual Basic باستخدام عنصر تحكم Microsoft Winsock: 7 خطوات
كيفية عمل برنامج محادثة بسيط في Visual Basic باستخدام عنصر تحكم Microsoft Winsock: في هذا البرنامج ، سأوضح لك كيفية إنشاء برنامج محادثة بسيط في Visual Basic. سوف أتطرق إلى ما يفعله كل الكود ، لذا ستتعلم أثناء إجرائه ، وفي النهاية سأوضح لك كيفية استخدامه