Novi projekat domaćih JS developera — Napravite svog bota za Facebook, Telegram, Skype i Slack

Claudia.js Bot Builder pojednostavljuje rad sa chat-botovima tako što već sadrži kompletnu infrastrukturu i standardne komunikacione funkcije, spakovane u veoma jednostavnu biblioteku za programiranje.

Gojko Adžić - 17. Jun, 2016.

Novi Claudia.js Bot Builder projekat pomaže JavaScript programerima da lakše naprave chat-botove za Facebook, Telegram, Skype i Slack, i da ih postave na AWS Lambda i API Gateway za svega nekoliko minuta.

Bot Builder pojednostavljuje rad sa chat-botovima tako što već sadrži kompletnu infrastrukturu i standardne komunikacione funkcije, spakovane u veoma jednostavnu biblioteku za programiranje. Koristeći ovaj alat, timovi mogu da prave chat-botove jednostavnije i usredsrede se na rešavanje bitnih poslovnih problema, umesto da istražuju komunikacione protokole i rešavaju infrastrukturne probleme.

Bot Builder biblioteka pojednostavljuje procese prijema i odgovaranja na poruke, automatski podešava komunikacione interfejse za razne platforme, i pomaže korisnicima da ih konfigurišu ispravno.

Da bi programeri lakše mogli da obrađuju dolazne poruke, Bot Builder automatski konvertuje podatke sa različitih platformi u isti format, i automatski pakuje i šalje odgovore na ispravan način zavisno od toga odakle je došla početna poruka. To znači da jedan bot sa istim programskim kodom može da opslužuje razne platforme, i da je potrebno da instalirate samo jednu instancu svog servisa da biste komunicirali sa svim podržanim sistemima.

Evo jednostavnog primera:

Preduslovi

Claudia Bot Builder radi:

Screen Shot 2016-06-17 at 10.46.09 AM

Ako ste već instalirali Claudia.JS, proverite da li koristite najnoviju verziju. Bot Builder zahteva verzije 1.4.0 i kasnije.

Bot za jednostavne tekstualne poruke

Prvo, kreirajte prazan direktorijum i unutar njega novi NPM projekat. Dajte mu opisno ime:

Screen Shot 2016-06-17 at 10.46.43 AM

Potom, dodajte claudia-bot-builder biblioteku:

Screen Shot 2016-06-17 at 10.47.32 AM

Ovaj bot će odgovarati različitim porukama pomoću biblioteke huh koja izmišlja izgovore. Dodajte i tu biblioteku:

Screen Shot 2016-06-17 at 10.48.20 AM

Napravite sada b0ta, u datoteci bot.js:

Screen Shot 2016-06-17 at 10.49.06 AMTo je sve. Sada možete da postavite bota na AWS i konfigurišete ga za Facebook Messagner koristeći Claudia.JS:

Screen Shot 2016-06-17 at 10.50.07 AM

Napravite novu Facebook stranicu i aplikaciju za Facebook Messenger, kao što je objašnjeno u Facebook Messenger Getting Started Guide. Claudia će tokom instalacije prikazati web adresu za interfejs (web hook URL) i verifikacioni token, koji možete kopirati u konfiguraciju Facebook Messenger aplikacije.

Nakon toga, iskopirajte Page Access Token na web strani za konfigurisanje Facebook aplikacija, i upišite ga kada vam Claudia bude tražila. Za nekoliko trenutaka, vaš bot će biti dostupan na Amazon Web Service infrastrukturi. Ostalo je samo da još zatražite Facebook administratorima da omoguće pristup ostalim korisnicima (kroz Application Review proces) i bilo ko na Facebooku će moći da priča sa vašim botom. To je bilo lako, zar ne?

Integracija sa drugim platformama

Claudia Bot Builder će vam pomoći i da konfigurišete bot za ostale platforme. Pokrenite claudia update sa sledećim opcijama:

* Za Slack /komande, koristite –configure-slack-slash-command

* Za Skype, koristite –configure-skype-bot

* Za Telegram, koristite –configure-telegram-bot

Složenije poruke

Prethodni bot je veoma jednostavan, i na svaku poruku odgovara izmišljenim izgovorom. Za domaći, uradite nešto zanimljivije sa njim.

Funkcija koja obrađuje poruke ima jedan argument, u prethodnom primeru to je objekat request. U tom objektu, polje text sadrži tekst poruke, a za složenije procese možete koristiti i sledeća polja:

Za jednostavne slučajeve, dovoljno je da funkcija koja obrađuje poruke samo vrati tekstualni odgovor. Bot Builder će automatski zapakovati to u odgovarajući format i poslaće ga nazad sistemu preko koga je došla originalna poruka. Ako želite da odgovorite složenijim porukama, na primer tako da Facebook prikaže meni sa opcijama, umesto teksta samo vratite JavaScript objekat sa odgovarajućim poljima. U tom slučaju, koristite polje type početne poruke da prepoznate sistem koji je poslao poruku, i odlučite kako da formatirate odgovor.

Za asinhrone odgovore, koristite Promise objekte. Ako planirate da obrađujete poruke asinhrono, konfigurišite Lambda funkciju tako da može da se izvršava duže. Standardna konfiguracija prekida izvršavanje nakon tri sekunde.

Probajte bota odmah

Bota iz ovog primera možete direktno da probate, pogledajte linkove na sledećoj stranici: https://github.com/claudiajs/example-projects/tree/master/simple-bot#try-live

Više informacija

Za više informacija o Claudia Bot Builder-u i nekim lepim primerima projekata, pogledajte Github repozitorijum. Za pitanja i sugestije, posetite Claudia project chat room na Gitteru.