Innehållsförteckning:
- Tillbehör
- Steg 1: Installera erforderlig programvara
- Steg 2: Skapa ett Twilio -konto
- Steg 3: Skaffa API -nyckel för COVID 19 -data, filmer och tv -program
- Steg 4: Anslut Python och Twilio Via Ngrok
- Steg 5: Testa vår applikation
- Steg 6: Hur fungerar det och framtida förbättringar:
- Steg 7: Slutanteckningar
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
CoVbot är en enkel och intuitiv Whatsapp -baserad chatbot. Botens huvuddrag är:
Det kan ge dig den senaste statusen för COVID-19 i det valda landet på ett enkelt och intuitivt sätt.
Dessutom kan boten föreslå roliga aktiviteter att göra hemma som:
- Föreslå en film - En film att titta på från listan över de 10 bästa filmerna, med en kort översikt över handlingen och varaktigheten. Eftersom listan inte är hårdkodad i programvara ger den dig alltid de senaste uppdateringarna baserat på aktuella trender.
- Föreslå ett tv -program - Ett tv -program att titta på från de mest populära tv -programmen, med en kort översikt av handlingen och betyg. Eftersom listan inte är hårdkodad i programvara ger den dig alltid de senaste uppdateringarna baserat på aktuella trender.
- Föreslå en bok - En bok att läsa från topp 10 -boklistan, med text och omslagsbild av boken.
- Dagliga träningspass-Detta är en videobaserad på ett 7-dagars träningsschema som tillhandahålls av CRANK gym på deras Instagram-konto.
Om du gillar den här instruktionsboken kan du överväga att rösta på den i författartävlingen för första objekt. (och ja det här är min första instruerbara så om något inte är klart eller behöver mer förklaring, meddela mig i kommentarsfältet så kan jag hjälpa dig:)
Tillbehör
Detta projekt är enbart mjukvarubaserat projekt, så alla som följer detta instruerbara med en bärbar dator/stationär PC/macOS/Linux och internet kan slutföra detta projekt. Jag kommer också att inkludera ett detaljerat avsnitt som i slutet för att förklara koden/processen mer detaljerat för personer med viss programmeringserfarenhet. Observera att detta inte behövs för att slutföra projektet
Projektets svårighetsgrad:
Inte särskilt lätt, men inte särskilt svårt
Hårdvaran vi kommer att använda:
- En bärbar dator/stationär dator med Windows/macOS/Linux.
- En mobiltelefon med WhatsApp Messenger installerad
Programvaran vi kommer att använda:
- Python programmeringsspråk
- ngrok - är ett verktyg som används för att ge oss åtkomst till vår server utanför vårt nätverk
- Redaktör du väljer: (t.ex. anteckningsblock ++, sublim text, Vim etc)
Steg 1: Installera erforderlig programvara
I det här steget kommer vi att göra följande:
- Installera Python> 3.6 och testa det
- Installera nödvändiga pythonbibliotek
- Installera ngrok
Om du har båda programmet installerat kan du hoppa över det här steget
Installera Python:
Hela backend/server -kodbasen för detta projekt är skriven i Python 3.6. Därför måste vi ha Python> 3.6 installerat på vår dator för att köra våra applikationer. Följ guiden från CoreySchafer om hur du installerar python för Windows och macOS
Du kan testa att allt är korrekt installerat genom att skriva följande i cmd/Terminal:
python -c 'print (f "Hello World")'
Om allt har installerats korrekt ska Hello World skrivas ut på skärmen. Om du får ett ogiltigt syntaxfel har du installerat fel version av python. Installera en version av python> = 3.6
Installera nödvändiga pythonbibliotek med pip:
Vi kommer att använda följande pythonbibliotek för att få vår programvara att fungera:
- Kolv - Detta är ramverket för vår server
- Twilio - Detta bibliotek ger ett sätt för python att kommunicera med WhatsApp
- Begäran - Detta bibliotek används för att begära data från API: er
- BeautifulSoup4 - Detta bibliotek används för att skrapa information från webbplatser
- lxml - Detta bibliotek används i kombination med BeautifulSoup för att extrahera relevant information från en webbplats
För att installera dessa bibliotek kan du göra följande:
Öppna CMD/Terminal och skriv följande kommando:
pip installera kolv, twilio, förfrågan, beautifulsoup4, lxml
ELLER
Ladda ner filen requirements.txt och öppna en terminal i katalogen där filen finns och skriv:
pip install -r krav.txt
Installera ngrok
ngrok låter dig exponera en server som körs på din lokala dator för internet. Berätta bara för ngrok vilken port din server lyssnar på.
Följ guiden på ngroks webbplats för att installera ngrok för det operativsystem du använder.
Tips: Steg 3 i guiden är inte relevant för detta projekt så kan hoppas över
Steg 2: Skapa ett Twilio -konto
I det här steget kommer vi att göra följande:
- Registrera dig för ett Twilio -konto
- Snabb introduktion till användbara avsnitt på Twilios konsol
Bli Medlem:
I detta projekt kommer vi att använda Twilio Whatsapp API för att ansluta vårt pythonprogram till Whatsapp. För att kunna använda Twilio API måste vi först skapa ett konto på Twilios officiella webbplats. För ett provkonto erbjuder Twilio en $ 15 gratis kredit till oss att använda.
Snabb introduktion:
När du har skapat ett konto är de mest intressanta delarna av Twilio -konsolen för detta projekt:
Instrumentpanel - Från instrumentpanelen kan du se hur mycket kredit du fortfarande har kvar, du kan redigera ditt projektnamn och ändra programmeringsspråket
Whatsapp -underavsnitt i programmerbart SMS -avsnitt - Från Whatsapp -sektionen på konsolen kan du få tillgång till kopplingskoden för boten, antalet Whatsapp som vi kommer att använda i projektet för att prata med vår bot och även konfigurationen av webhooken. Mer information om alla dessa kommer att beskrivas i nästa steg
Steg 3: Skaffa API -nyckel för COVID 19 -data, filmer och tv -program
En API -nyckel eller applikationsprogrammeringsgränssnittsnyckel är en kod som skickas in av datorprogram. Programmet eller applikationen anropar sedan API- eller applikationsprogrammeringsgränssnittet för att identifiera dess användare, utvecklare eller anropsprogram till en webbplats.
Vi använder ett API för att få information om den senaste COVID -19 -statusen, filmer och tv -program. För att komma åt API: et behöver du en nyckel som är personlig för varje användare. I det här steget får vi dessa nycklar
Skaffa API -nyckel för COVID 19 -data:
- Logga in eller registrera dig för ditt RapidAPI -konto.
- Gå sedan till COVID-19 API av Gramzivi
- Rulla ner till avsnittet "Rubrikparametrar" i API -konsolen.
- Din API-nyckel ska vara synlig i fältet "X-RapidAPI-Key".
Skaffa API -nyckel för filmer och tv -programdata:
- Logga in eller registrera dig för ditt TMDB -konto
- Gå sedan till din inställning - API
- Rulla ner till avsnittet "API -nyckel (v3 -autentisering)"
- Din API -nyckel ska vara synlig under den
Skapa "config.py" -fil
Vi kommer nu att skapa en config.py -fil för att lagra våra API -nycklar. Vi skapar en separat fil för dessa, eftersom API -nycklar är konfidentiell information och om du delar ditt projekt ska du inte dela din API -nyckel.
- Skapa en ny projektkatalog
- Skapa en ny fil som heter "config.py" i den nyskapade katalogen
- Redigera den här filen med en valfri redigerare (Sublime, Notepad ++) och kopiera och ersätt följande text med relevant information från föregående steg:
session_key = "secret" #Detta är inte säkert.. men bara för test är det ok
rapid_api_key = "" api_key = ""
Spara filen
Steg 4: Anslut Python och Twilio Via Ngrok
I det här steget kommer vi att göra följande:
- Ladda ner källkoden
- Kör programmet och vidarebefordra lokal IP till en offentlig adress via ngrok så att vi kan göra en förfrågan till det
- Konfigurera vårt Twilio -konto för att vidarebefordra begäran till vår server
Ladda ner källkoden för boten:
Ladda ner all bifogad fil i den här installationen till projektkatalogen som skapades i det sista steget.
Kör programmet:
Gå till katalogen för källkoden i CMD/terminalen och kör följande kommando:
python server_main.py
Se till att ha "config.py" som vi skapade i det sista steget, annars får du ett fel
Utdata ska vara ungefär så här:
* Visar kolv -appen "server_main" (lat laddning)
* Miljö: produktion VARNING: Detta är en utvecklingsserver. Använd den inte i en produktionsdistribution. Använd en produktions -WSGI -server istället. * Felsökningsläge: på * Körs på https://127.0.0.1:5000/ (Tryck på CTRL+C för att avsluta) * Starta om med stat * Debugger är aktivt! * Felsöknings-PIN: 740-257-236
Det betyder att din server fungerar korrekt i ditt lokala nätverk på port 5000. För att göra denna server tillgänglig från ditt lokala nätverk använder vi ngrok
Vidarebefordra lokal IP till en offentlig adress via ngrok
Gå till katalogen där du laddade ner ngrok via CMD/terminal och kör följande kommando:
ngrok http 5000
Utdata ska vara ungefär så här:
ngrok av @inconshreveable (Ctrl+C för att sluta)
Sessionstatus online Sessionen löper ut 7 timmar, 59 minuter Version 2.3.35 Region USA (oss) webbgränssnitt https://127.0.0.1:4040 Vidarebefordran _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Vidarebefordran _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Anslutningar ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 0.00
Kopiera HTTP -länken från "Forwading" -delen (bara till ngrok.io). (Jag har lagt till _ i detta exempel för att undvika att instruera att fånga upp det som en länk)
Konfigurera Twilio för att använda den nya adressen för att vidarebefordra serverförfrågan till:
Nu när vi framgångsrikt har vidarebefordrat vår server för att nås offentligt måste vi konfigurera Twilio så att när en begäran görs med Twilio Whatsapp API vidarebefordrar vi begäran till vår server. För att göra detta måste vi göra följande:
- Gå till Whatsapp -sektionen på Twilios konsol
- Navigera till avsnittet "Sanbox"
- I textrutan "NÄR ETT MEDDELANDE KOMMER" klistra in HTTP -länken från ngrok kopierad med tillägget /sms (KOPIERA INTE _ i början och slutet):
_https://d44c955749bf.ngrok.io/sms_
Nu är allt för chatbot konfigurerat. I nästa steg kan vi testa om allt fungerar korrekt
Steg 5: Testa vår applikation
I det här steget kommer vi att göra följande:
- Gå med i vår bot med åtkomstkoden
- Prova vår ansökan
Gå med i vår bot med åtkomstkoden
I det här projektet kommer vi att använda Twilios Whatsapp Sandbox -nummer för vår Whatsapp -bot. För varje person kommer detta nummer att vara annorlunda. Du kan hitta ditt nummer så här:
- Logga in på ditt Twilio -konto
- Gå till Twilio Console -> Whatsapp -sektionen -> Sandlåda
- Du kommer att se ditt Twilio Sandbox -nummer med följande text:
Bjud in dina vänner till din sandlåda. Be dem skicka ett WhatsApp -meddelande till:
På grund av Whatsapps säkerhetspolicy måste alla som vill prata med en automatiserad bot via Whatsapp uttryckligen välja att använda en kod. Du kan ta reda på din kod genom att titta i samma avsnitt som ditt Twilio -sandlådanummer med texten:
När du har skaffat ditt Twilio Sandbox Whatsapp-nummer och din kod för att börja använda botten, gå till din mobiltelefon och gör följande:
- Spara "Twilio Sandbox Whatsapp Number" till din kontakt med ditt namnval (t.ex. CovBot)
- Öppna Whatsapp och skicka följande meddelande till den kontakten:
Ansluta sig
Du bör se ett meddelande så här:
Twilio Sandbox: Du är klar …
Det betyder att du har anslutit till din bot och är redo att fråga den qs
Prova vår ansökan:
För att testa de olika funktionerna i din bot efter att du har anslutit, skicka följande meddelande till boten:
Hej
Du bör se följande text:
Välkommen till CoVbot!
En enkel chatbot som kan ge de senaste uppdateringarna av COVID-19 på ett enkelt, snabbt och enkelt sätt. Eftersom vi alla är i karantän kan boten användas för att föreslå några roliga aktiviteter för att få ut det mesta av vår tid hemma när vi strävar efter att skydda oss själva, vänner och familj. Vi hoppas att du gillar det och tycker att det är användbart! Skicka 4 för att komma igång!
Nu kan du följa alternativet för att testa botens olika funktioner.
DET ÄR ALLT! Din Whatsapp Chatbot är klar !!!! Grattis
Steg 6: Hur fungerar det och framtida förbättringar:
Det här avsnittet är för personer som har erfarenhet av pythonprogrammering. Om du inte gör det kan du hoppa över det här avsnittet
Kod Förklaring
Huvudsak:
När ett Whatsapp -meddelande skickas till ditt Twilios nummer skickar Twilio API en POST -begäran till din server som du angav. Servern implementeras med hjälp av Flask -ramverket och så kan vi använda objektet Flask Request för att hämta data som tas emot under POST -begäran. Baserat på data (siffror i det här fallet) bestämmer vi vilket alternativ användaren har valt och ger lämplig information
COVID -data och filmer och tv -program:
Informationen om COVID 19, filmer och TV -program hämtas från ett API. Jag använder python -biblioteket för begäran för att hämta data och sedan konvertera dem till ett JSON -format. Sedan analyserar jag bara relevant information. För filmer och tv -program använde jag också slumpmässigt pythonbibliotek för att välja ett slumpmässigt tv -program och film
Bokinformation
Bokförslagalgoritmen som används i projektet är bara en webbskrapa. Jag kunde inte hitta något API som ger dig en slumpmässig bok med detaljer, så jag skrapar bara en webbplats med BeautifulSoup4 och med hjälp av lxml -parsern extraherar jag relevant information om boken
Undermenyinformation:
Att implementera undermenyerna var lite mer knepigt än resten eftersom Whatsapp-meddelanden är som SMS, vilket är ett statslöst protokoll. För att lösa detta har jag använt två tekniker:
- Använda globala variabler för att komma ihåg meddelandets tillstånd - Detta implementeras endast för alternativet COVID 19. I detta när en användare väljer "Status för COVID 19 i mitt land" är en global variabel som heter incomplete_message inställd på True för att indikera att ytterligare ett meddelande baserat på föregående alternativ fortfarande behövs. Sedan finns det en kontroll i början som kontrollerar om ett meddelande är markerat som ofullständigt om det antar att meddelandet är landets namn för COVID -data och skickar informationen till rätt funktion och ställer in den globala variabeln ofullständigt meddelande till False
- Använda Twilio -kakor och kolvsessioner - Kakor och kolvsessioner används i undermenyn "Föreslå en karantänaktivitet" för att implementera statethet, precis som alla webbapplikationer på internet använder det nu för tiden, men istället för att komma ihåg saker som ditt användarnamn eller konto det kom ihåg konverteringen mellan två nummer. Om du gillar mer information om denna del rekommenderade jag att läsa den här fantastiska guiden om Twilio Cookies skriven av Twilio Team
Framtida förbättringar:
- Använd objektorientering av Python och designmönster för att förbättra kodarkitekturen och DRYness
- Ta bort globala variabler
- Felhantering kan förbättras
- Uppdatera ngrok -adressen automatiskt med majs och Twilio CLI
- Koddokumentation
Steg 7: Slutanteckningar
Jag hoppas att ni alla gillar det här projektet. Detta är min första instruerbara, så om något inte är klart eller behöver mer förklaring, meddela mig i kommentarsfältet, så kan jag hjälpa dig. Även om du gjorde det här projektet med en annan teknik eller funktionslista, dela alla det
Rekommenderad:
Odla mer sallad på mindre utrymme eller växa sallad i rymden, (mer eller mindre) .: 10 steg
Växande mer sallad på mindre utrymme eller … växande sallad i rymden, (mer eller mindre) .: Detta är en professionell underkastelse till Growing Beyond Earth, Maker Contest, som skickas in via Instructables. Jag kunde inte vara mer upphetsad över att planera för produktion av rymdgrödor och lägga upp min första instruktör. För att börja bad tävlingen oss att
Lekfulla tryckkänsliga kuddar (för digitala lekplatser - och mer): 11 steg (med bilder)
Lekfulla tryckkänsliga kuddar (för digitala lekplatser - och mer): Detta är en instruktion som visar dig hur du gör en tryckkänslig kudde - som kan användas för att skapa digitala leksaker eller spel. Det kan användas som ett kraftkänsligt motstånd i stor skala, och även om det är lekfullt, kan det användas för mer seriösa projekt
Stort LED "ring" -ljus för timelapse, porträtt och mer : 11 steg (med bilder)
Stort LED "ring" -ljus för timelapse, porträtt och mer …: Jag tar många timelapse -videor som sträcker sig över några dagar, men hatar det ojämna ljuset som klämljus ger - särskilt på natten. Ett stort ringljus är för dyrt - så jag bestämde mig för att göra något själv på en enda kväll med saker jag hade till hands.
Gör din egen professionella skivrengöringsmaskin för mindre än $ 80 och spara upp till $ 3000 och mer: 6 steg (med bilder)
Gör din egen professionella skivrengöringsmaskin för mindre än $ 80 och spara upp till $ 3000 och mer .: Ursäkta min engelska. Efter att jag hittat tillbaka till ljudet av god gammal vinyl hade jag problemet med varje skivälskare. Hur rengörs posterna ordentligt!? Det finns många sätt på Internet. Billigare sätt som Knosti eller Discofilm men också
Förstärkare för gitarrförstärkare för hel- eller halvstack med separata huvuden och mer: 5 steg
Gitarrförstärkare Tilt -stativ för hel- eller halvstaplar med separata huvuden och mer.: Jag vet att jag är galen, men jag är okej med det. Jag byggde detta för att testa några teorier. Jocken på den lokala musikbutiken skulle inte låta mig lägga sina dyrbara nya Marshall -stackar på detta och sprang iväg mig. Jag kan inte riktigt skylla på honom för att han är så småsinnig