Sadržaj:
- Pribor
- Korak 1: Instalirajte potrebni softver
- Korak 2: Izradite Twilio račun
- Korak 3: Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
- Korak 4: Povežite Python i Twilio putem Ngroka
- Korak 5: Testirajte našu aplikaciju
- Korak 6: Kako to funkcionira i buduća poboljšanja:
- Korak 7: Završne napomene
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
CoVbot je jednostavan i intuitivan chatbot zasnovan na Whatsappu. Glavna značajka bota je:
Na jednostavan i intuitivan način može vam dati najnoviji status COVID-19 u zemlji izbora.
Osim toga, bot može predložiti zabavne aktivnosti KOD DOMA, kao što su:
- Predloži film - film za gledanje s top 10 filmova s kratkim pregledom radnje i trajanjem. Budući da ovaj popis nije hardkodiran u softveru, uvijek ćete dobiti najnovija ažuriranja na temelju trenutnih trendova.
- Predloži TV emisiju - TV emisiju za gledanje iz najpopularnijih TV emisija, s kratkim pregledom radnje i gledanosti. Budući da ovaj popis nije hardkodiran u softveru, uvijek ćete dobiti najnovija ažuriranja na temelju trenutnih trendova.
- Predloži knjigu - Knjiga za čitanje s Top 10 knjiga s popisom i omotom knjige.
- Dnevni treninzi-Ovo je video zapis temeljen na sedmodnevnom rasporedu vježbi koji pruža CRANK gym na svom Instagram računu.
Ako vam se sviđa ovaj Instructable, razmislite o tome da ga glasate na natječaju za autore prve stavke. (i da, ovo je moje prvo uputstvo, pa ako vam nešto nije jasno ili trebate dodatno objašnjenje, javite mi u odjeljku za komentare i mogu vam pomoći:)
Pribor
Ovaj je projekt isključivo projekt temeljen na softveru, tako da svatko tko slijedi ove upute s prijenosnim/stolnim računalom/macOS/Linuxom i internetom može dovršiti ovaj projekt. Uključit ću i detaljan odjeljak na kraju kako bih detaljnije objasnio kôd/proces za osobe s nekim iskustvom u programiranju. Imajte na umu da ovo nije potrebno za dovršetak projekta
Razina zahtjevnosti projekta:
Nije baš lako, ali nije ni teško
Hardver koji ćemo koristiti:
- Prijenosno/stolno računalo sa sustavom Windows/macOS/Linux.
- Mobilni telefon s instaliranim WhatsApp Messengerom
Softver koji ćemo koristiti:
- Programski jezik Python
- ngrok - je alat koji nam omogućuje pristup našem poslužitelju izvan naše mreže
- Uređivač po vašem izboru: (npr. Notepad ++, Uzvišeni tekst, Vim itd.)
Korak 1: Instalirajte potrebni softver
U ovom koraku učinit ćemo sljedeće:
- Instalirajte Python> 3.6 i testirajte ga
- Instalirajte potrebne knjižnice python
- Instalirajte ngrok
Ako imate obje aplikacije instalirane, možete preskočiti ovaj korak
Instalirajte Python:
Cijela kodirana baza podataka poslužitelja/poslužitelja za ovaj projekt napisana je u Pythonu 3.6. Stoga za pokretanje naših aplikacija moramo imati instaliran Python> 3.6 na računalu. Slijedite vodič CoreySchafera o tome kako instalirati python za Windows i macOS
Možete provjeriti je li sve ispravno instalirano upisivanjem sljedećeg u cmd/terminal:
python -c 'print (f "Hello World")'
Ako je sve ispravno instalirano, Hello World bi trebao biti ispisan na ekranu. Ako dobijete pogrešnu sintaksnu pogrešku, imate instaliranu pogrešnu verziju pythona. Instalirajte verziju pythona> = 3.6
Instalirajte potrebne python knjižnice pomoću pipa:
Za rad našeg softvera koristit ćemo sljedeće python knjižnice:
- Flask - Ovo je okvir za naš poslužitelj
- Twilio - Ova knjižnica pruža način da Python komunicira s WhatsAppom
- Zahtjev - Ova se knjižnica koristi za traženje podataka od API -ja
- BeautifulSoup4 - Ova se knjižnica koristi za brisanje informacija s web stranica
- lxml - Ova se knjižnica koristi u kombinaciji s BeautifulSoupom za izdvajanje relevantnih informacija s web stranice
Da biste instalirali ove knjižnice, učinite sljedeće:
Otvorite CMD/terminal i upišite sljedeću naredbu:
pip install flask, twilio, request, beautifulsoup4, lxml
ILI
Preuzmite datoteku requirements.txt i otvorite terminal u direktoriju u kojem se nalazi datoteka i upišite:
pip install -r requirements.txt
Instalirajte ngrok
ngrok vam omogućuje da poslužitelju koji radi na vašem lokalnom računalu izlažete internet. Samo recite ngroku na kojem portu poslužuje vaš poslužitelj.
Slijedi vodič na web stranici ngrok za instaliranje ngroka za operativni sustav koji koristite.
Savjet: Korak 3 vodiča nije relevantan za ovaj projekt pa se može preskočiti
Korak 2: Izradite Twilio račun
U ovom koraku učinit ćemo sljedeće:
- Prijavite se za Twilio račun
- Brzi uvod u korisne odjeljke na Twiliovoj konzoli
Prijavite se:
U ovom projektu koristit ćemo Twilio Whatsapp API za povezivanje našeg programa python s Whatsappom. Da bismo mogli koristiti Twilio API, prvo moramo stvoriti račun na službenoj web stranici Twilio. Za probni račun Twilio nudi besplatan kredit od 15 USD za korištenje.
Brzi uvod:
Nakon što ste stvorili račun, najzanimljiviji odjeljci Twilio konzole za ovaj projekt su:
Nadzorna ploča - Na nadzornoj ploči možete vidjeti iznos kredita koji vam je preostao, možete urediti naziv projekta i promijeniti programski jezik
Pododsjek Whatsapp u odjeljku Programabilni SMS - Iz odjeljka Whatsapp na konzoli možete dobiti pristup kodu za pridruživanje bota, broju Whatsappa koji ćemo koristiti u projektu za razgovor s našim botom te postavljanju web kuke. Više detalja o svemu tome bit će opisano u sljedećim koracima
Korak 3: Nabavite API ključ za podatke, filmove i TV emisije o bolesti COVID 19
API ključ ili ključ sučelja za programiranje aplikacije je kôd koji prosljeđuju računalne aplikacije. Program ili aplikacija tada poziva API ili sučelje za programiranje aplikacije kako bi identificirali svog korisnika, razvojnog programera ili program koji poziva web stranicu.
Koristimo API za dobivanje informacija o najnovijim statusima, filmovima i TV emisijama o bolesti COVID 19. Za pristup API -ju potreban vam je ključ koji je osobni za svakog korisnika. U ovom koraku dobit ćemo ove ključeve
Nabavite API ključ za podatke o bolesti COVID 19:
- Prijavite se ili se prijavite za svoj RapidAPI račun.
- Nakon toga idite na COVID-19 API by Gramzivi
- Pomaknite se dolje do odjeljka "Parametri zaglavlja" API konzole.
- Vaš API ključ trebao bi biti vidljiv u polju "X-RapidAPI-Key".
Nabavite API ključ za podatke o filmovima i TV emisijama:
- Prijavite se ili se prijavite za svoj TMDB račun
- Nakon toga idite na svoju postavku - API
- Pomaknite se dolje do odjeljka "API ključ (v3 auth.)"
- Vaš API ključ trebao bi biti vidljiv ispod njega
Izradite datoteku "config.py"
Sada ćemo stvoriti datoteku config.py za pohranu naših API ključeva. Za njih stvaramo zasebnu datoteku, jer su API ključevi povjerljivi podaci i ako dijelite svoj projekt, ne biste trebali dijeliti svoj API ključ.
- Izradite novi direktorij projekta
- Unutar novostvorenog direktorija stvorite novu datoteku pod nazivom "config.py"
- Uredite ovu datoteku uređivačem po vašem izboru (Sublime, Notepad ++) i kopirajte i zamijenite sljedeći tekst relevantnim podacima dobivenim u prethodnom koraku:
session_key = "secret" #Ovo nije sigurno.. ali samo za test je u redu
rapid_api_key = "" api_key = ""
Spremite datoteku
Korak 4: Povežite Python i Twilio putem Ngroka
U ovom koraku učinit ćemo sljedeće:
- Preuzmite izvorni kod
- Izvršite program i proslijedite lokalni IP na javnu adresu putem ngroka kako bismo mogli podnijeti zahtjev za to
- Konfigurirajte naš Twilio račun da proslijedi zahtjev našem poslužitelju
Preuzmite izvorni kod za robota:
Preuzmite sve priložene datoteke u ovoj postavci u direktorij projekta kreiran u posljednjem koraku.
Izvršite program:
Idite u direktorij izvornog koda u CMD/terminalu i izvedite sljedeću naredbu:
python server_main.py
Provjerite imate li "config.py" koji smo stvorili u zadnjem koraku ili ćete dobiti pogrešku
Izlaz bi trebao biti otprilike ovako:
* Aplikacija koja poslužuje Flask "server_main" (lijeno učitavanje)
* Okoliš: proizvodnja UPOZORENJE: Ovo je razvojni poslužitelj. Nemojte ga koristiti u proizvodnoj instalaciji. Umjesto toga koristite produkcijski WSGI poslužitelj. * Način otklanjanja pogrešaka: uključen * Pokreće se na https://127.0.0.1:5000/ (pritisnite CTRL+C za prekid) * Ponovno pokretanje sa stat * Otklanjanje pogrešaka je aktivno! * PIN za otklanjanje pogrešaka: 740-257-236
To znači da vaš poslužitelj ispravno radi na vašoj lokalnoj mreži na portu 5000. Kako bismo ovaj poslužitelj učinili pristupačnim izvan vaše lokalne mreže, koristit ćemo ngrok
Proslijedite lokalni IP na javnu adresu putem ngroka
Idite u direktorij u koji ste preuzeli ngrok putem CMD/terminala i izvedite sljedeću naredbu:
ngrok http 5000
Izlaz bi trebao biti otprilike ovako:
ngrok od @inconshreveable (Ctrl+C za prekid)
Status sesije na mreži Sesija istječe 7 sati, 59 minuta Verzija 2.3.35 Regija Sjedinjene Države (nas) Web sučelje https://127.0.0.1:4040 Prosljeđivanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Prosljeđivanje _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Veze ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00
Kopirajte HTTP vezu iz dijela "Forwading" (samo do ngrok.io). (Dodao sam _ u ovaj primjer kako bih izbjegao upute da ga presretnem kao vezu)
Konfigurirajte Twilio da koristi novu adresu za prosljeđivanje zahtjeva poslužitelja za:
Sada kada smo uspješno proslijedili našem poslužitelju javni pristup, moramo konfigurirati Twilio tako da kada se zahtjev podnese putem Twilio Whatsapp API -ja proslijedimo zahtjev na naš poslužitelj. Da bismo to učinili, moramo učiniti sljedeće:
- Idite na odjeljak Whatsapp na Twiliovoj konzoli
- Idite na pododjeljak "Sanbox"
- U tekstualno polje "KADA DOĐE PORUKA" zalijepite HTTP vezu s ngroka kopiranu s /sms nastavkom (NE KOPIRAJTE _ na početku i na kraju):
_https://d44c955749bf.ngrok.io/sms_
Sada je sve za chatbot postavljeno. U sljedećem koraku možemo provjeriti radi li sve ispravno
Korak 5: Testirajte našu aplikaciju
U ovom koraku učinit ćemo sljedeće:
- Pridružite se našem botu pomoću pristupnog koda
- Isprobajte našu aplikaciju
Pridružite se našem botu pomoću pristupnog koda
U ovom projektu koristit ćemo Twiliov Whatsapp Sandbox broj za našeg Whatsapp bota. Za svaku osobu taj će broj biti različit. Svoj broj možete pronaći ovako:
- Prijavite se na svoj Twilio račun
- Idite na Twilio Console -> Whatsapp odjeljak -> Sandbox
- Vidjet ćete svoj Twilio Sandbox broj sa sljedećim tekstom:
Pozovite svoje prijatelje u svoj Sandbox. Zamolite ih da pošalju poruku WhatsApp na:
Zbog sigurnosne politike Whatsappa, svi koji žele razgovarati s automatiziranim botom putem Whatsappa moraju se izričito uključiti pomoću koda. Svoj kôd možete saznati ako pogledate u istom odjeljku kao i svoj Twilio sandbox broj sa tekstom:
Nakon što ste stekli svoj Twilio Sandbox Whatsapp broj i kôd za prijavu, za početak korištenja bota idite na svoj mobilni telefon i učinite sljedeće:
- Spremite "Twilio Sandbox Whatsapp broj" u svoj kontakt s vašim imenom (npr. CovBot)
- Otvorite Whatsapp i pošaljite sljedeću poruku tom kontaktu:
pridružiti
Trebali biste vidjeti ovakvu poruku:
Twilio Sandbox: Sve je spremno….
To znači da ste se povezali sa svojim botom i spremni to pitati qs
Isprobajte našu aplikaciju:
Da biste testirali različite značajke vašeg bota nakon što se povežete, pošaljite botu sljedeću poruku:
bok
Trebali biste vidjeti sljedeći tekst:
Dobro došli u CoVbot!
Jednostavan chatbot koji na jednostavan, brz i jednostavan način može dati najnovija ažuriranja COVID-19. Budući da smo svi u karanteni, bot se može upotrijebiti za predlaganje nekih zabavnih aktivnosti kako bismo maksimalno iskoristili vrijeme provedeno kod kuće jer nastojimo zaštititi sebe, prijatelje i obitelj. Nadamo se da ćete uživati i biti korisni! Pošaljite 4 za početak!
Sada možete slijediti opciju da isprobate različite značajke bota.
TO JE TO! Vaš Whatsapp Chatbot je spreman !!!! Čestitamo
Korak 6: Kako to funkcionira i buduća poboljšanja:
Ovaj odjeljak je za ljude koji imaju iskustvo programiranja na pythonu. Ako ne, možete preskočiti ovaj odjeljak
Objašnjenje koda
Glavna petlja:
Kada se Whatsapp poruka pošalje na vaš Twilio broj, Twilio API šalje POST zahtjev vašem poslužitelju koji ste naveli. Poslužitelj je implementiran pomoću okvira Flask pa možemo koristiti objekt Flask Request za dohvaćanje podataka primljenih tijekom POST zahtjeva. Na temelju podataka (u ovom slučaju brojeva) odlučujemo koju je opciju korisnik odabrao i dajemo odgovarajuće podatke
Podaci o COVID -u i filmovi i TV emisije:
Podaci o virusu COVID 19, filmovima i TV emisijama preuzimaju se iz API -ja. Koristim biblioteku zahtjeva python za dobivanje podataka, a zatim ih pretvaram u JSON format. Zatim samo raščlanjujem relevantne podatke. Za filmove i TV emisije također sam koristio biblioteku slučajnih pythona za odabir slučajne TV emisije i filma
Pojedinosti o knjizi
Algoritam prijedloga knjiga koji se koristi u projektu samo je strugač za web. Nisam mogao pronaći nijedan API koji vam daje nasumičnu knjigu s pojedinostima, pa sam samo izgrebao web stranicu koristeći BeautifulSoup4 i pomoću parsera lxml izvlačim relevantne podatke iz knjige
Detalji o podmeniju:
Implementacija podizbornika bila je malo zeznutija od ostalih jer su poruke Whatsappa poput SMS-ova koji je protokol bez stanja. Da bih to riješio, upotrijebio sam dvije tehnike:
- Upotreba globalnih varijabli za pamćenje stanja poruke - ovo se primjenjuje samo za podopciju COVID 19. U tom slučaju kada korisnik odabere "Status COVID -a 19 u mojoj zemlji", globalna varijabla pod nazivom incomplete_message postavljena je na True kako bi označila da je tada potrebna još jedna poruka na temelju prethodne opcije. Zatim se na početku nalazi provjera koja provjerava je li poruka označena kao nepotpuna ako pretpostavlja da je poruka naziv zemlje za podatke o bolesti COVID i prenosi informacije ispravnoj funkciji te postavlja globalnu varijablu nepotpunu poruku na Netačno
- Korištenje Twilio kolačića i sesije s kolačićima - Kolačići i sesije s bocom koriste se u podizborniku "Predloži aktivnost u karanteni" za implementaciju državnosti, baš kao što ih koristi bilo koja web aplikacija na internetu ovih dana, ali umjesto da zapamti stvari poput vašeg korisničkog imena ili računa zapamtite pretvorbu između dva broja. Ako vam se sviđa više informacija o ovom dijelu, preporučio sam da pročitate ovaj sjajan vodič o Twilio kolačićima koji je napisao Twilio tim
Buduća poboljšanja:
- Iskoristite Object Orientedness Python i Design Patterns za poboljšanje arhitekture koda i DRYness
- Uklonite globalne varijable
- Rukovanje pogreškama može se poboljšati
- Automatski ažuriraj ngrok adresu koristeći corn i Twilio CLI
- Dokumentacija koda
Korak 7: Završne napomene
Nadam se da će vam se svima svidjeti ovaj projekt. Ovo je moje prvo uputstvo, pa ako vam nešto nije jasno ili vam treba dodatno objašnjenje, javite mi u odjeljak za komentare i mogu vam pomoći. Također, ako ste ovaj projekt napravili drugom tehnikom ili popisom značajki, podijelite ga svi
Preporučeni:
Kako modificirati servo za povratne informacije o zatvorenoj petlji: 7 koraka
Kako modificirati servo za povratne informacije zatvorene petlje: ► Dok vozite servo s mikrokontrolerom (kao Arduino), možete mu dati samo naredbe o ciljnoj lokaciji (u PPM signalu). S ovom narudžbom, servo će se pomaknuti na ovu metu mjesto. Ali nije trenutno! Ne znate kada je točno
Povratne informacije o vlažnosti tla Sustav za navodnjavanje kapanjem (ESP32 i Blynk) kontroliran internetom povezan s internetom: 5 koraka
Povratne informacije o vlažnosti tla Kontrolirani sustav za navodnjavanje kapanjem povezan s internetom (ESP32 i Blynk): Brinite o svom vrtu ili biljkama kada idete na duge praznike, ili zaboravite svakodnevno zalijevati biljku. Eto rješenja
Uradi sam upravljač i pedale od kartona! (Povratne informacije, mjenjači vesla, zaslon) za simulatore utrka i igre: 9 koraka
Uradi sam upravljač i pedale od kartona! (Povratne informacije, mjenjači vesla, zaslon) za simulatore utrka i igre: Hej svima! U ovim dosadnim vremenima svi se šetamo tražeći nešto za raditi. Trkački događaji u stvarnom životu otkazani su i zamijenjeni simulatorima. Odlučio sam izgraditi jeftin simulator koji radi besprijekorno, provi
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na natječaj Growing Beyond Earth, Maker, predana putem Instructables. Ne mogu biti više uzbuđen što ću dizajnirati za proizvodnju svemirskih usjeva i objaviti svoj prvi Instructable. Za početak, natječaj nas je zamolio da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje više štitnika motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način izgradnje uređaja koji prevodi senzorni unos u vibracijske podražaje. Ti vibracijski podražaji su p