
Cuprins:
- Provizii
- Pasul 1: Instalați software-ul necesar
- Pasul 2: Creați un cont Twilio
- Pasul 3: obțineți cheia API pentru date, filme și emisiuni TV COVID 19
- Pasul 4: Conectați Python și Twilio Via Ngrok
- Pasul 5: testați aplicația noastră
- Pasul 6: Cum funcționează și îmbunătățiri viitoare:
- Pasul 7: Note finale
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04



CoVbot este un chatbot simplu și intuitiv bazat pe Whatsapp. Principala caracteristică a botului este:
Vă poate oferi cel mai recent statut de COVID-19 în țara aleasă într-un mod simplu și intuitiv.
În plus, robotul poate sugera activități distractive de făcut acasă, cum ar fi:
- Sugerează un film - Un film de vizionat din lista de top 10 filme, cu o scurtă prezentare generală a complotului și a duratei. Deoarece această listă nu este codificată în software, aceasta vă va oferi întotdeauna cele mai recente actualizări bazate pe tendințele actuale.
- Sugerați o emisiune TV - O emisiune TV de vizionat din cele mai populare emisiuni TV, cu o scurtă prezentare generală a complotului și a ratingurilor. Deoarece această listă nu este codificată în software, aceasta vă va oferi întotdeauna cele mai recente actualizări bazate pe tendințele actuale.
- Sugerează o carte - O carte de citit din Top 10 Listă de cărți, cu imaginea de copertă și copertă a cărții.
- Antrenamente zilnice - Acesta este un videoclip bazat pe un program de antrenament de 7 zile oferit de sala CRANK pe contul lor de Instagram.
Dacă vă place acest Instructable, vă rugăm să luați în considerare votul pentru acesta în cadrul Concursului de autor pentru primul articol. (și da, acesta este primul meu instructable, deci dacă ceva nu este clar sau are nevoie de mai multe explicații, vă rugăm să ne anunțați în secțiunea de comentarii și vă pot ajuta:)
Provizii
Acest proiect este exclusiv un proiect bazat pe software, astfel încât oricine urmează acest instructable cu un laptop / desktop PC / macOS / Linux și internet poate finaliza acest proiect. Voi include, de asemenea, o secțiune detaliată la sfârșit pentru a explica codul / procesul mai detaliat pentru persoanele cu o anumită experiență în programare. Rețineți că nu este necesar pentru finalizarea proiectului
Nivelul de dificultate al proiectului:
Nu foarte ușor, dar nu foarte greu
Hardware-ul pe care îl vom folosi:
- Un laptop / desktop care rulează Windows / macOS / Linux.
- Un telefon mobil cu WhatsApp Messenger instalat
Software-ul pe care îl vom folosi:
- Limbaj de programare Python
- ngrok - este un instrument folosit pentru a ne permite accesul la serverul nostru din afara rețelei noastre
-
Editor la alegere: (de ex. Notepad ++, Sublime Text, Vim etc.)
Pasul 1: Instalați software-ul necesar


În acest pas vom face următoarele:
- Instalați Python> 3.6 și testați-l
- Instalați bibliotecile Python necesare
- Instalați ngrok
Dacă aveți ambele aplicații instalate, puteți sări peste acest pas
Instalați Python:
Întreaga bază de cod backend / server pentru acest proiect este scrisă în Python 3.6. Prin urmare, pentru a rula aplicațiile noastre, trebuie să avem Python> 3.6 instalat pe computerul nostru. Urmați tutorialul CoreySchafer despre cum să instalați python pentru Windows și macOS
Puteți testa totul este instalat corect tastând următoarele în cmd / Terminal:
python -c 'print (f "Hello World")'
Dacă totul a fost instalat corect, atunci Hello World ar trebui să fie tipărit pe ecran. Dacă primiți o eroare de sintaxă nevalidă, atunci aveți instalată versiunea greșită de python. Instalați o versiune de python> = 3.6
Instalați bibliotecile Python necesare folosind pip:
Vom folosi următoarele biblioteci python pentru ca software-ul nostru să funcționeze:
- Flask - Acesta este cadrul pentru serverul nostru
- Twilio - Această bibliotecă oferă o modalitate prin care Python poate comunica cu WhatsApp
- Solicitare - Această bibliotecă este utilizată pentru a solicita date de la API-uri
- BeautifulSoup4 - Această bibliotecă este utilizată pentru răzuirea informațiilor de pe site-uri web
- lxml - Această bibliotecă este utilizată în combinație cu BeautifulSoup pentru a extrage informațiile relevante de pe un site web
Pentru a instala aceste biblioteci puteți face următoarele:
Deschideți CMD / Terminal și tastați următoarea comandă:
pip instalare balon, twilio, request, beautifulsoup4, lxml
SAU
Descărcați fișierul requirements.txt și deschideți un terminal în directorul în care se află fișierul și tastați:
pip install -r requirements.txt
Instalați ngrok
ngrok vă permite să expuneți la internet un server care rulează pe mașina dvs. locală. Spuneți doar ngrok pe ce port ascultă serverul dvs.
Urmează ghidul de pe site-ul web ngrok pentru a instala ngrok pentru sistemul de operare pe care îl utilizați.
Sfat: Pasul 3 al ghidului nu este relevant pentru acest proiect, deci poate fi omis
Pasul 2: Creați un cont Twilio
În acest pas vom face următoarele:
- Înscrieți-vă pentru un cont Twilio
- Introducere rapidă la secțiunile utile din Consola Twilio
Inscrie-te:
În acest proiect, vom folosi API-ul Twilio Whatsapp pentru a conecta programul nostru Python la Whatsapp. Pentru a putea utiliza Twilio API trebuie mai întâi să ne creăm un cont pe site-ul oficial al Twilio. Pentru un cont de probă, Twilio oferă un credit gratuit de 15 USD pentru a fi folosit de noi.
Introducere rapidă:
După ce ați creat un cont, cele mai interesante secțiuni ale consolei Twilio pentru acest proiect sunt:
Tablou de bord - Din tabloul de bord, puteți vedea suma de credit care vă mai rămâne, puteți edita numele proiectului și puteți schimba limbajul de programare
Subsecțiunea Whatsapp în secțiunea SMS programabil - Din secțiunea Whatsapp a consolei, puteți obține acces la codul de asociere pentru bot, numărul de Whatsapp pe care îl vom folosi în proiect pentru a vorbi cu botul nostru și, de asemenea, configurarea webhook-ului. Mai multe detalii despre toate acestea vor fi descrise în pașii următori
Pasul 3: obțineți cheia API pentru date, filme și emisiuni TV COVID 19


O cheie API sau o cheie de interfață de programare a aplicației este un cod care este transmis de aplicațiile computerizate. Programul sau aplicația apelează apoi API-ul sau interfața de programare a aplicației pentru a identifica utilizatorul, dezvoltatorul sau programul de apelare pe un site web.
Folosim un API pentru a obține informații pentru cele mai recente stări COVID 19, filme și emisiuni TV. Pentru a accesa API-ul aveți nevoie de o cheie personală pentru fiecare utilizator. În acest pas, vom obține aceste chei
Obțineți cheia API pentru datele COVID 19:
- Conectați-vă sau înscrieți-vă pentru contul RapidAPI.
- După aceea, mergeți la COVID-19 API de către Gramzivi
- Derulați în jos până la secțiunea „Parametri antet” din consola API.
- Cheia dvs. API ar trebui să fie vizibilă în câmpul „X-RapidAPI-Key”.
Obțineți cheia API pentru filme și date despre emisiuni TV:
- Conectați-vă sau înscrieți-vă pentru contul dvs. TMDB
- După aceea, accesați setarea dvs. - API
- Derulați în jos până la secțiunea „API Key (v3 auth)”
- Cheia dvs. API ar trebui să fie vizibilă sub ea
Creați fișierul „config.py”
Vom crea acum un fișier config.py pentru a stoca cheile API. Creăm un fișier separat pentru acestea, deoarece cheile API sunt informații confidențiale și dacă partajați proiectul dvs. nu ar trebui să partajați cheia API.
- Creați un director de proiect nou
- În directorul nou creat creați un fișier nou numit „config.py”
- Editați acest fișier cu un editor la alegere (Sublime, Notepad ++) și copiați și înlocuiți următorul text cu informații relevante obținute în pasul anterior:
session_key = "secret" # Acest lucru nu este sigur.. dar doar pentru test este ok
rapid_api_key = "" api_key = ""
Salvați fișierul
Pasul 4: Conectați Python și Twilio Via Ngrok
În acest pas vom face următoarele:
- Descărcați codul sursă
- Executați programul și redirecționați IP local către o adresă publică prin ngrok, astfel încât să îi putem face o cerere
- Configurați contul nostru Twilio pentru a redirecționa cererea către serverul nostru
Descărcați codul sursă pentru bot:
Descărcați tot fișierul atașat din această configurare în directorul de proiect creat în ultimul pas.
Executați programul:
Mergeți la directorul codului sursă din terminalul CMD / și executați următoarea comandă:
python server_main.py
Asigurați-vă că aveți „config.py” pe care l-am creat în ultimul pas sau altfel veți primi o eroare
Rezultatul ar trebui să fie ceva de genul acesta:
* Servirea aplicației Flask „server_main” (încărcare leneșă)
* Mediu: producție AVERTISMENT: Acesta este un server de dezvoltare. Nu-l utilizați într-o implementare de producție. Folosiți în schimb un server WSGI de producție. * Mod de depanare: activat * Rularea pe https://127.0.0.1:5000/ (Apăsați CTRL + C pentru a ieși) * Repornirea cu stat * Debuggerul este activ! * PIN de depanare: 740-257-236
Aceasta înseamnă că serverul dvs. funcționează corect în rețeaua dvs. locală din portul 5000. Pentru a face acest server accesibil din afara rețelei locale vom folosi ngrok
Redirecționați IP local către o adresă publică prin ngrok
Mergeți la directorul de unde ați descărcat ngrok prin CMD / terminal și executați următoarea comandă:
ngrok http 5000
Rezultatul ar trebui să fie ceva de genul acesta:
ngrok de @inconshreveable (Ctrl + C pentru a renunța)
Starea sesiunii online Sesiunea expiră 7 ore, 59 minute Versiunea 2.3.35 Regiunea Statele Unite (noi) Interfață web https://127.0.0.1:4040 Redirecționare _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Redirecționare _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Conexiuni ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
Copiați linkul HTTP din partea „Forwading” (până la ngrok.io). (Am adăugat _ în acest exemplu pentru a evita ca să-l interceptăm ca un link)
Configurați Twilio pentru a utiliza noua adresă pentru a redirecționa cererea serverului către:
Acum, că am redirecționat cu succes serverul nostru pentru a fi accesat public, trebuie să configurăm Twilio astfel încât, atunci când o cerere este făcută folosind Twilio API Whatsapp, să redirecționăm solicitarea către serverul nostru. Pentru a face acest lucru, trebuie să facem următoarele:
- Accesați secțiunea Whatsapp din Consola Twilio
- Navigați la subsecțiunea „Sanbox”
- În caseta de text „Când vine un mesaj” lipiți linkul HTTP de la ngrok copiat cu extensia / sms (NU COPIAȚI _ la început și la sfârșit):
_https://d44c955749bf.ngrok.io/sms_
Acum totul este configurat pentru chatbot. În pasul următor, putem testa dacă totul funcționează corect
Pasul 5: testați aplicația noastră



În acest pas vom face următoarele:
- Alăturați-vă botului nostru folosind codul de acces
- Încercați aplicația noastră
Alăturați-vă botului nostru folosind codul de acces
În acest proiect, vom folosi numărul de sandbox Whatsapp Twilio pentru botul nostru Whatsapp. Pentru fiecare persoană, acest număr va fi diferit. Puteți găsi numărul dvs. astfel:
- Conectați-vă la contul dvs. Twilio
- Accesați Twilio Console -> Secțiunea Whatsapp -> Sandbox
- Veți vedea numărul dvs. Twilio Sandbox cu următorul text:
Invitați-vă prietenii în Sandbox. Rugați-i să trimită un mesaj WhatsApp la:
Datorită politicii de securitate a Whatsapp, toți cei care doresc să vorbească cu un bot automat prin Whatsapp trebuie să opteze în mod explicit folosind un cod. Puteți afla codul dvs. uitându-vă în aceeași secțiune cu numărul dvs. de sandbox Twilio cu textul:
După ce ați achiziționat numărul de telefon Twilio Sandbox Whatsapp și codul de înscriere, pentru a începe să utilizați botul, accesați telefonul mobil și faceți următoarele:
- Salvați „Numărul WhatsApp Twilio Sandbox” la persoana de contact cu numele ales (de ex. CovBot)
- Deschideți Whatsapp și trimiteți următorul mesaj către persoana de contact:
a te alatura
Ar trebui să vedeți un mesaj ca acesta:
Twilio Sandbox: Sunteți gata …
Aceasta înseamnă că v-ați conectat cu botul dvs. și sunteți gata să-l întrebați qs
Încercați aplicația noastră:
Pentru a testa diferitele caracteristici ale botului dvs. după ce v-ați conectat, trimiteți următorul mesaj către bot:
Salut
Ar trebui să vedeți următorul text:
Bine ați venit la CoVbot!
Un chatbot simplu care poate oferi cele mai recente actualizări ale COVID-19 într-un mod simplu, rapid și ușor. Deoarece suntem cu toții în carantină, robotul poate fi folosit pentru a sugera câteva activități distractive pentru a profita la maximum de timpul nostru acasă, în timp ce ne străduim să ne păstrăm în siguranță pe noi înșine, prietenii și familia. Sperăm să vă bucurați și să vi se pară util! Trimite 4 pentru a începe!
Acum puteți urmări opțiunea de a încerca diferitele caracteristici ale botului.
ASTA E! Chatbot-ul dvs. Whatsapp este gata !!!! Felicitări
Pasul 6: Cum funcționează și îmbunătățiri viitoare:




Această secțiune este destinată persoanelor care au o experiență de programare Python. Dacă nu, puteți sări peste această secțiune
Explicarea codului
Bucla principală:
Când un mesaj Whatsapp este trimis la numărul dvs. Twilio, API-ul Twilio face o cerere POST către serverul dvs. pe care l-ați specificat. Serverul este implementat folosind cadrul Flask și astfel putem folosi obiectul Flask Request pentru a prelua datele primite în timpul cererii POST. Pe baza datelor (Numere în acest caz) decidem ce opțiune a selectat utilizatorul și oferim informațiile corespunzătoare
Date și filme COVID și emisiuni TV:
Datele COVID 19, filme și emisiuni TV sunt preluate dintr-un API. Folosesc biblioteca python de solicitare pentru a obține datele și apoi le convertesc într-un format JSON. Apoi analizez doar informațiile relevante. Pentru filme și emisiuni TV, am folosit și biblioteca aleatorie python pentru a alege o emisiune TV și un film aleatoriu
Detalii carte
Algoritmul de sugestie de carte utilizat în proiect este doar un răzuitor web. Nu am putut găsi niciun API care să vă ofere o carte aleatorie cu detalii, așa că am răzuit un site web folosind BeautifulSoup4 și folosind parser-ul lxml extrag informațiile relevante ale cărții
Detalii submeniu:
Implementarea submeniurilor a fost puțin mai complicată decât restul, deoarece mesajele Whatsapp sunt ca SMS-uri, care este un protocol fără stat. Pentru a rezolva acest lucru, am folosit două tehnici:
- Utilizarea variabilelor globale pentru a vă aminti starea mesajului - Aceasta este implementată numai pentru subopțiunea COVID 19. În acest caz, atunci când un utilizator selectează „Starea COVID 19 în opțiunea țării mele”, o variabilă globală numită incomplete_message este setată la Adevărat pentru a indica atunci este necesară încă o altă mesagerie bazată pe opțiunea anterioară. Apoi există o verificare la început care verifică dacă un mesaj este marcat ca incomplet, dacă este așa, presupune că mesajul este numele țării pentru datele COVID și trece informațiile la funcția corectă și setează variabila globală mesajul incomplet la False
- Utilizarea cookie-urilor și sesiunilor Flask Twilio - Cookie-urile și sesiunile Flask sunt folosite în submeniul „Sugerează o activitate de carantină” pentru a implementa starea de stat, la fel ca orice aplicație web de pe internet care o folosește în aceste zile, dar în loc să-ți amintești lucruri precum numele de utilizator sau cont, amintiți-vă conversia dintre două numere. Dacă vă plac mai multe informații despre această parte, v-am recomandat să citiți acest ghid minunat despre cookie-urile Twilio, scris de Echipa Twilio
Îmbunătățiri viitoare:
- Folosiți Orientarea obiectelor Python și modelele de proiectare pentru a îmbunătăți arhitectura codului și DRYness
- Eliminați variabilele globale
- Tratarea erorilor poate fi îmbunătățită
- Actualizați automat adresa ngrok folosind porumb și Twilio CLI
- Documentarea codului
Pasul 7: Note finale
Sper să vă placă tuturor acestui proiect. Acesta este primul meu instructable, deci dacă ceva nu este clar sau are nevoie de mai multe explicații, anunțați-mă în secțiunea de comentarii și vă pot ajuta. De asemenea, dacă ați făcut acest proiect cu o altă tehnică sau o listă de caracteristici, împărtășiți-l cu toții
Recomandat:
Cum se programează un decodor IR pentru controlul motorului cu curent alternativ cu mai multe viteze: 7 pași

Cum se programează un decodor IR pentru controlul motorului cu curent alternativ cu mai multe viteze: motoarele cu curent alternativ monofazate se găsesc în mod obișnuit în articolele de uz casnic, cum ar fi ventilatoarele, iar viteza lor poate fi controlată cu ușurință atunci când se utilizează un număr de înfășurări discrete pentru turațiile setate. În acest Instructable construim un controler digital care
Cultivarea mai multor salată în spațiu mai mic sau Cultivarea salatei în spațiu, (mai mult sau mai puțin) .: 10 pași

Cultivarea mai multor salată în spațiu mai mic sau … Cultivarea salată în spațiu, (mai mult sau mai puțin). Nu aș putea fi mai încântat să proiectez pentru producția de culturi spațiale și să postez primul meu Instructable. Pentru a începe, concursul ne-a cerut
Handheld Shortcut Controller (pentru Photoshop + Mai multe) [Arduino]: 4 pași
![Handheld Shortcut Controller (pentru Photoshop + Mai multe) [Arduino]: 4 pași Handheld Shortcut Controller (pentru Photoshop + Mai multe) [Arduino]: 4 pași](https://i.howwhatproduce.com/images/005/image-12658-33-j.webp)
Handheld Shortcut Controller (pentru Photoshop + More) [Arduino]: Ultima dată am creat un mic control pad pentru a-l folosi în Photoshop. A făcut minuni și încă îl folosesc! Dar este, de asemenea, destul de limitat, cu doar cinci butoane și cadrele utile de dimensiuni și opacitate. Încă m-am trezit că mă apuc de tastatură mult … Deci
Catapulta automată pentru aruncarea de alimente pentru animale de companie (câine, pisică, pui, etc.), aruncarea de bile și multe altele !: 4 pași (cu imagini)

Catapulta automată pentru aruncarea de alimente pentru animale de companie (câine, pisică, pui, etc.), aruncarea de bile și multe altele!: Bună ziua și bine ați venit la primul meu instructabil! Am conceput modalități de a încetini acest lucru, de la mingi cu mâncarea înăuntru, până la aruncarea peste tot în curtea din spate. Uimitor, ea este
Lucrul cu mai multe computere (pentru studenți): 6 pași

Lucrul cu mai multe computere (pentru studenți): Lucrul cu mai multe computere poate fi foarte dificil. Nu știți niciodată ce fișiere sunt pe ce computer, s-ar putea să întâmpinați probleme cu mai multe versiuni ale aceluiași fișier și, ca rezultat, puteți pierde fișierele împreună sau cel puțin să aveți