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.

För detta behöver vi tre saker:
- Facebook-sida En Facebook Messenger-bot är associerad med en Facebook-sida. Du måste registrera dig som utvecklare och sedan skapa en sida.
- 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.
- 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.




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.


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


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.

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


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

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

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.

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.

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.

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

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.

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.

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.

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.

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


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.

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.
- __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.
- 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.
- 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.

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

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.


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/

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.


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


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.

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.

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).

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.

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.