Bygg upp en personlig Facebook Messenger Bot på 10 minuter med Nodejs och Standard Library

Skulle det inte vara fantastiskt att ha en personlig chatbot som skickar coola saker hela dagen? Kanske uppdaterar du statusen för dina hemanordningar eller skickar söta kattbilder från Reddit?

Låt oss bygga en som skickar de bästa inläggen från dina favorit subreddits. Du kan naturligtvis utöka det med vilket innehåll du vill skicka.

Bot kommer att skicka de bästa inläggen från de subreddits du anger

För detta behöver vi tre saker:

  1. Facebook-sida En Facebook Messenger-bot är associerad med en Facebook-sida. Du måste registrera dig som utvecklare och sedan skapa en sida.
  2. Dialogflow Dialogflow, ett Google-företag, hjälper till i NLP (Natural Language Processing). Detta hjälper senare när du vill utöka din bot för att svara på specifika saker.
  3. Code on Standard Library Det bästa sedan skivad bröd, Code on Standard Library hjälper dig att köra kod i molnet. Detta kommer att vara hjärnan i vår verksamhet.

Låt oss komma igång.

Konfigurera Facebook-sida

Gå till utvecklare.facebook.com och logga in med dina Facebook-referenser. När du är inloggad, klicka på Kom igång och följ instruktionerna för att lägga till en ny app.

Skapa en ny app på FB Developer Portal

Ge din app ett namn. Detta är namnet från vilket du får dina aviseringar. Gör det till något coolt, som Darth Vader.

Navigera sedan till fliken Dashboard på menyn till vänster. Rulla nedåt för att hitta Messenger och välj Inställningar. Innan du kan lägga till din Messenger-integration måste du skapa en Facebook-sida.

Välj Inställningar på Messenger-kortet på fliken Dashboard och sedan Skapa en ny sida

Detta tar dig till Facebook. Följ anvisningarna för att skapa en sida för en gemenskaps- eller offentlig figur.

Skapa en gemenskaps- eller allmän figur Facebook-sida

När din sida har skapats, växla tillbaka till FB Developer portal och uppdatera sidan. Nu bör du se din sida i rullgardinsmenyn Välj en sida.

Uppdatera sidan och välj sedan ditt Facebook-sidnamn från listrutan för att generera ett token

Låt oss nu ställa in Dialogflow. Klicka på Gå till konsol och logga in med dina Googles referenser.

Dialogflow använder Natural Language Processing för att förstå chattkonversation

Klicka på Skapa agent och fyll i detaljerna. Ge din agent ett namn. Det kan vara samma namn som din Facebook-sida.

Ge din agent ett namn och välj rätt tidszon

När din agent skapas lägger den automatiskt till två avsikter. Klicka på Standard Välkommen avsikt för att redigera det.

Du kan lägga till fler avsikter om du vill.

Lägg till händelsen FACEBOOK_WELCOME i avsnittet Händelser. Detta gör att din bot kan känna igen användaren när han interagerar med botten för första gången.

Lägg till Facebook Välkommen till evenemang

Rulla ner på sidan och ta bort standardsvaren genom att klicka på papperskorgen, eftersom vi kommer att svara på användaren från vår kod.

Klicka på papperskorgen för att ta bort standardsvaren

Rulla nedåt längre och aktivera Uppfyllning. Detta säkerställer att alla förfrågningar dirigeras via vår chatbot-funktion på Code on Standard Library.

Aktivera Uppfyllning för att ta emot meddelanden på din webhook

Därefter måste vi ansluta Facebook Messenger till Dialogflow. Klicka på Integrationer.

Integrationer gör att agenten kan arbeta med en mängd olika tjänster inklusive Facebook Messenger

Slå på Messenger-integration. Detta öppnar ett modalt fönster. Du måste ange två saker här. Först är verifiera token som kan vara vilken text som helst, och det andra är sidåtkomsttoken.

Byt till Facebook-utvecklarportalen och kopiera sidåtkomsttoken.

Välj ditt sidnamn i rullgardinsmenyn för att generera ett sidåtkomsttoken

Klistra in sidåtkomsttoken i Dialogflow-modalfönstret och ange ditt verifiera token. Klicka på START-knappen för att starta integrationen. Klicka nu på urklippsikonen för att kopiera återuppringningsadressen.

Klicka på Urklippsikonen för att kopiera återuppringningsadressen

Byt nu till Facebook Developer Portal. Det är dags att konfigurera Webhooks-integrationen. Välj Inställning av webhooks som hittas under avsnittet Token Generation. Klistra in webbadressen som du kopierade i fältet för återuppringning av URL och ange din verifieringstoken du angav i föregående steg. Markera alla prenumerationsfält.

Inte alla krävs, men Dialogflow tar hand om onödiga och skickar endast de relevanta

Klicka på Verifiera och spara och om du har konfigurerat allt korrekt ska du se en grön bock med Komplett. Välj nu ditt sidnamn från rullgardinsmenyn och klicka på Prenumerera.

Välj ditt sidnamn i rullgardinsmenyn och klicka sedan på Prenumerera för att prenumerera på din sida

Det finns ytterligare ett par saker du behöver för att slutföra installationen. Gå till Inställningar> Grundläggande och lägg till en URL för sekretesspolicy och välj en kategori för din app. Webbadressen för sekretesspolicy kan vara valfri URL.

Du kan också använda den integritetspolicy som medföljer koden, som anges i avsnittet Kod i Standardbiblioteket nedan
Ange sekretess-URL och välj en kategori för din sida

Spara ändringar och växla statusknappen På för att göra din app live.

Ikonen visar status som Live. Du kanske frestas att tro att det betyder att hela världen kan se din app och interagera med den. Nej.

Din app är live

Kod för standardbibliotekskonfiguration

Det är här vår kod lever som möjliggör all kommunikation. När vi skickar ett meddelande till vår bot på Facebook går det först till Dialogflow. Dialogflödet kommer att leda det till rätt avsikt och sedan vidarebefordra det till vår funktion - den här funktionen.

Första sökning efter fb-messenger-bot i Community API-källor. Klicka på Skapa nytt API.

När du skapat ser du tre filer i mappen med funktioner.

  1. __main __. js Huvudfunktionen hämtar Reddit-inlägg och skickar dem till användarna. Ändra multiobjektet högst upp i funktionen för att anpassa subreddits.
  2. webhook.js Den här funktionen hanterar alla webbhookförfrågningar från Dialogflow. Här lägger du till anpassade avsikter om du vill utöka botfunktionaliteten.
  3. privacy.js Visste du att Code på Standard Library-funktioner kan returnera HTML-filer? Detta är en sekretessfil som du kan använda på FB Developer Portal. URL: n ser ut som https://username.lib.id/[email protected]/privacy. Du bör lägga till din egen e-post längst ner i detta dokument.

Navigera nu till filen env.json och fyll i miljöerna med ditt standardbibliotekstoken och Facebook-sidåtkomsttoken.

För att hämta ditt standardbibliotekstoken, placera markören mellan de gula citaten och högerklicka. Välj ditt standardbibliotekstoken från rullgardinsmenyn och variabeln ska automatiskt fyllas i.
Ange din FB-åtkomsttoken och Standardbibliotekstoken i din env.json-fil

När du har sparat env.json-filen klickar du på Kör.

Klicka på Kör för att distribuera tjänsten
Kom ihåg att varje gång du ändrar någon kod måste du spara och sedan köra den för att distribuera den nya koden.

När du har distribuerat kopierar du den API-slutpunkt URL som visas. Det här är din slutpunkt för webhook.

Låt oss nu avsluta Dialogflow-installationen. Byt till Dialogflow och klicka på Uppfyllning och slå på Webhook.

Aktivera webbhaken och lägg till URL

Lägg till den kopierade URL: en / webhook / och klicka på SPARA längst ner på sidan. Din webbhook-URL ska se ut som https://username.lib.id/[email protected]/webhook/

Lägg till / webhook / till din bas-URL

Vi är nästan klara. Allt vi behöver göra nu är att aktivera vår bot på Facebook-sidan. Gå till din Facebook-sida och klicka på Lägg till en knapp. Välj Skicka meddelande, fyll i informationen och spara.

Lägg till en skicka meddelandeknapp till din Facebook-sida

När du håller muspekaren över knappen Skicka meddelande visas en rullgardinsmeny. Klicka på Testknappen.

Klicka på Testknappen för att testa din bot

Detta öppnar en chatt med en Komma igång-knappen. Klicka på det och om du har konfigurerat allt korrekt kommer du att hälsas med “Woohoo !. Välkommen {Namn}. Du har lagts till i databasen. ”.

Detta innebär att du har lagts till som användare i din funktion på kod på standardbibliotekets lokala lagring.

Om du meddelar din bot "Hej" igen svarar den med "Hej {Namn}, du har redan lagts till i databasen."

Nu för att konfigurera uppgifter.

Uppgifter om kod i standardbiblioteket

En av de coolaste funktionerna i Code on Standard Library är uppgifter. Att ställa in uppgifter gör att din kod körs automatiskt enligt ett specifikt schema.

Klicka på Uppgifter för att ställa in din kod så att den körs i ett schema
Jag har för närvarande konfigurerat funktionen för fyra aviseringar om dagen. Du kan ändra det till vilket nummer du föredrar. Kom ihåg att du också måste ändra max_notifieringsvariabeln överst i funktionen och lägga till samma antal repeterbara uppgifter i cron-specifikationen.

I fönstret Uppgifter väljer du din botfunktion för att lägga till ett schema till den.

Välj din funktion för att lägga till ett uppgiftsschema

Du kan ställa in arbetsschemat med hjälp av rullgardinsmenyn Schema. Men vi vill ha lite mer kontroll, så låt oss använda Advanced (cron).

Klicka på Advanced (cron) för att använda cron-uttryck för uppgiftsschema

Cron-uttrycket kan vara väldigt förvirrande att förstå. Uttrycket tar 5 värden - * * * * *. Den första är minutvärdet och den andra är timvärdet.

Så om du anger 30 5,8,11,15 * * *, betyder det 4 uppgifter som körs kl 05:30, 08:30, 11:30 och 15:30, upprepade varje dag. Tiderna är i UTC, så du måste lägga till eller subtrahera din tidszonförskjutning för rätt lokal tid.

Eftersom jag bor i Indien och min tidszonförskjutning är +05: 30 kommer detta schema att löpa klockan 11:00, 14:00, 17:00 och 21:00 lokal tid.

Om cron-uttrycket är giltigt visas de följande tre åkallningstiderna under det

Klicka på Schema Task så är du klar. Du bör nu få aviseringar på din messenger vid schemalagda tider.

Välj en gång varje minut om du vill testa uppgiften. När du har fått rätt meddelanden kan du stänga av det och använda ovanstående cron-uttryck eller något liknande för att anpassa schemat.

Grattis! Du har en personlig chatbot nu. Jag kommer att lägga till fler tutorials under de kommande månaderna om vilka andra intressanta saker du kan göra med en chatbot.

Kolla in Skapa en Alexa Radio Skill, om du vill bygga en Alexa skill med dina personliga radiostationer.