Како направити Слацк Бот у ЈаваСцрипт -у са Болт АПИ -јем

Блог

Како направити Слацк Бот у ЈаваСцрипт -у са Болт АПИ -јем

Развијте и прилагодите сопствени Слацкбот користећи Болт АПИ, најновију библиотеку за програмирање са Слацком у ЈаваСцрипт -у.

Првобитно објавио Адебола Адениран ат хттпс://блог.логроцкет.цом/

Нови Болт АПИ

Недавно сам покушао да развијем Слацкбот са Ноде Слацк СДК али, нажалост, налетео сам на неке грешке. Тада сам налетео на ново Болт АПИ . Према Слацку, то је најбржи начин за почетак програмирања са Слацк платформом у ЈаваСцрипт -у.

Постоји неколико разлога да испробате нови Болт АПИ из Слацка да бисте изградили своју следећу Слацк апликацију или бот. Као прво, то је добро документована библиотека која ће вам помоћи да избегнете наилажење на чудне грешке и проблеме даље у низу. Друго, АПИ развија и одржава Слацк, што гарантује да ће се често ажурирати.

Развој са овим АПИ -јем био је лаган, и уверавам вас да је Болт АПИ библиотека прави начин за развој Слацк апликација. У овом водичу ћете научити како да креирате сопствени Слацкбот помоћу Болт АПИ -ја.

Подесити

Предуслови

Да бисте пратили овај водич, биће вам потребно:

  • Основно познавање ЈаваСцрипта и Ноде.јс -а
  • Ноде.јс в12 или новији
  • надморске висине

Направите радни простор

За почетак ће нам требати радни простор за инсталирање нашег бота. А Слацк радни простор је начин групне комуникације унутар организације. Сви у организацији могу припадати једном радном простору, који је затим подељен на више канала.

Инсталирајте Слацк на свој уређај и креирајте нови радни простор . Слацк ће тада послати шестоцифрени код на вашу е-пошту коју можете користити за верификацију. А сада забавни део! Дајте свом радном простору име; за овај водич ћемо створити измишљену компанију под називом Тхе Зобо Теа Цомпани.

Напомена: Ако сте радознали, можете прочитати више о томе чајеви од хибискуса (познат и као Зобо).

најбоља идеја за Свифт

Назив компаније Слацк Сцреен

Затим ће вас Слацк затражити да унесете назив пројекта на којем радите. Можете назвати пројекат како год желите. Можете прескочити последњи корак где вас Слацк тражи да додате друге чланове тима.

Направите нову Слацк апликацију

Сада ћемо створити нову Слацк апликацију. Слацк апликације су мале апликације које пружају одређене функционалности унутар радног простора. Можете инсталирати већ постојећу Слацк апликацију тако што ћете се пријавити на радни простор Слацк и потражити апликације у директоријуму Слацк апликација.

Слацк апликација коју ћемо створити је база знања која помаже запосленима у нашој измишљеној организацији да брзо пронађу одговоре на честа питања.

Да бисте креирали нову Слацк апликацију, идите на Слацк АПИ Командна табла. Кликните Направите нову апликацију дугме у горњем десном углу. Дајте боту име, а затим одаберите у који радни простор желите да инсталирате апликацију. Звали смо наше | _+_ |.

Направите Слацк апликацију

Хит Направи апликацију и бићете преусмерени на контролну таблу за своју нову апликацију.

0Аутх и дозволе

Морамо новој апликацији дати одређене дозволе за приступ подацима и извођење радњи у оквиру нашег Слацк радног простора.

На вашој Слацк контролној табли ћете пронаћи ОАутх и дозволе мени на левој бочној траци. Када се крећете овде, померите се надоле до Опсези . Требају нам | _+_ | да бисте могли читати тренутне поруке од корисника и одговарати на те поруке. Ево снимка екрана опсега које смо дали нашем боту:

Опсези токена Слацк Бота

Инсталирајте апликацију у свој радни простор

Након тога, сада можемо инсталирати апликацију у наш радни простор. Са леве бочне траке идите на Подешавања > Инсталирајте апликације > Инсталирај у радни простор.

Подесите Слацкбот сервер

Затим је време да напишете неки код. Морамо да подесимо сервер за наш Слацкбот на који можемо да шаљемо захтеве. Уђимо у то!

Направите директоријум под називом | _+_ | и иницијализујте нпм:

ask-ztc-bot

Инсталирајте следеће пакете у | _+_ | именик:

  • @лабав/вијак : ЈаваСцрипт оквир за брзо стварање Слацк апликација помоћу најновијих функција платформе
  • нодемон : алат који аутоматски поново покреће апликацију Ноде.јс када се открију промене датотека у директоријуму
  • дотенв : модул нулте зависности који учитава променљиве окружења из а | _+_ | датотеку у процес.енв

Користићу менаџер пакета Иарн за инсталирање ових пакета, али можете користити и нпм:

ask-ztc-bot

Морамо мало да прилагодимо наш | _+_ | филе. Додајмо нову скрипту под називом | _+_ | који ради | _+_ |. Ваш | _+_ | требало би да изгледа овако:

ask-ztc-bot

Тхе | _+_ | скрипта аутоматски поново покреће наш сервер у | _+_ | када мењамо било коју датотеку у нашој бази кодова. Затим креирајте | _+_ | датотека која ће садржати код за наш сервер:

mkdir ask-ztc-bot && cd ask-ztc-bot npm init -y

Аутентификација помоћу жетона и тајни

Слацк ће морати да потврди аутентичност нашег бота да би га повезао. Слацк потврђује аутентичност апликација помоћу а | _+_ | и а | _+_ |. Мораћемо да сачувамо и | _+_ | и | _+_ | у а | _+_ | датотеку како бисте спречили њихово откривање приликом коришћења контроле верзија.

Да бисте пронашли свој | _+_ |, идите на Основне информације > Акредитиви за апликације > Тајна потписивања . Да бисте добили | _+_ |, идите на Подешавања > Инсталирати апликацију > Корисник Бота оАутх токен . Ваш | _+_ | треба почети са | _+_ |.

Направи | _+_ | у основном директоријуму вашег пројекта и доделите | _+_ | и | _+_ | сте добили из горе наведеног корака:

ask-ztc-bot

Подешавање сервера

Идите у | _+_ | датотеку коју смо раније креирали и додајте доњи код:

.env

Покрените | _+_ | скрипту коју смо раније креирали како бисмо били сигурни да све ради исправно. Требали бисте добити поруку на свом терминалу да апликација Слацк Болт ради на | _+_ |!

Подешавање нгрока

Потребан нам је начин да наша Слацк апликација/бот дође до сервера који смо створили на | _+_ |. Да бисмо то урадили, можемо проки за | _+_ | путем јавне УРЛ адресе коју је креирала услуга попут сукња . Када инсталирате нгрок, покрените следећу команду у директоријуму:

yarn add @slack/bolt yarn add -D nodemon dotenv

Ово ствара јавни УРЛ који је посредник вашег | _+_ | ради на | _+_ |. Сада, уверите се да је ваш сервер на | _+_ | још увек ради.

Соцкет Моде

Слацк такође има функцију која се зове Соцкет Моде , што омогућава Слацку да се повеже са нашим сервером апликација помоћу ВебСоцкетс уместо ХТТП -а као што смо урадили са горе наведеним нгроком. Соцкет Моде нуди нам много брже развојно искуство јер можемо прескочити постављање нгрока.

Почетак рада са режимом утичнице

Прво идите на Подешавања > Основне информације > Токени на нивоу апликације . Када сте тамо, кликните на Генеришите токен и опсеге дугме. Дајте имену токена и апликацији дајте два доступна опсега: | _+_ | _а_нд | _+_ |. Погоди Генериши дугме. Затим копирајте жетон на следећем екрану у свој | _+_ | филе.

Затим идите на Подешавања > Соцкет Моде. Укључите / искључите Омогући Соцкет Моде тогглер. Коначно, крените у свој | _+_ | датотеку и ажурирајте код који иницијализује ваш | _+_ | са | _+_ | и ваш | _+_ |:

package.json

Када се то заврши, сви захтеви вашем развојном серверу сада ће се одвијати путем ВебСоцкетс -а, а не ХТТП -а.

Сласх команде

Сада када смо нашој апликацији дали неке дозволе и поставили сервер и јавни УРЛ, следећи корак је да јој омогућимо да слуша Сласх команде . У Слацку можете покренути акцију слањем команде као поруке. На пример, команда косе црте може бити | _+_ | да прикажемо сав садржај у нашој бази знања.

Да бисте омогућили команде Сласх, кликните на Сласх команде мени на левој бочној траци. Затим кликните на Креирај Нова команда дугме. Попуните образац користећи слику испод као водич. УРЛ захтева треба да буде прилагођени УРЛ који аутоматски генерише нгрок за вашу апликацију.

Слацк Креирај нову команду

Погоди сачувати дугме које се налази у доњем десном углу екрана. Слацк ће од вас затражити да поново инсталирате апликацију у радни простор да би промене ступиле на снагу. Пратите та упутства и ваш | _+_ | сада треба креирати команду!

безбедна галаксичка крипто веб локација

Тестирање /знање команда

Сада можемо тестирати | _+_ | команду из унутрашњости Слацка. Прво ћемо створити слушаоца који ће слушати догађаје који укључују | _+_ | команда. У вашем | _+_ | датотеку, додајте следећи код:

dev

Тестирајмо наш код! У апликацији Слацк требали бисте видети | _+_ | апликацију одмах испод Ваше апликације одељак. Кликните на то да бисте послали поруке боту. Упишите | _+_ | и притисните ентер. Требало би да добијете поруку која гласи Иаааи! та команда ради !.

Слаб радна порука робота

Поруке у Слацку

Такође можемо поменути или | _+_ | бот и укључити додатни текст који ће се послати боту као порука.

продам кућу брзо дц

У Слацку је помињање апликације врста догађај . Такође можемо слушати други догађаји на пример, када се нови корисници придруже каналу, ствара се нови канал итд. Да би наш бот/апликација слушали догађаје, морамо да подесимо претплате на догађаје.

Претплате на догађаје

Да бисте омогућили догађаје, идите на Функције> Претплате на догађаје са контролне табле Слацк апликације. Укључите / искључите Омогући догађаје дугме укључено.

Да би Слацк обавестио нашу апликацију о догађајима, мораћемо да наведемо јавни УРЛ који Слацк може да верификује. Копирајте нгрок УРЛ створили смо раније и залепили то у УРЛ захтева поље за унос. Морате да додате | _+_ | на УРЛ јер ће Слацк верификовати вашу УРЛ адресу слањем ПОСТ захтева.

Омогући Слацк Субсцриптионс Субсцриптионс

Када видите зелени верификовани текст са знаком квачице, знате да је Слацк успешно верификовао вашу апликацију и спремни сте за рад!

Затим морамо апликацији дати неке дозволе за догађаје. Кликните претплатите се на бот догађаје падајућег менија и додајте следеће догађаје. Постоје четири догађаја везана за поруке:

  • | _+_ |: слуша поруке на јавним каналима
  • | _+_ |: слуша поруке на приватним каналима
  • | _+_ |: слуша поруке у ДМ -овима ваше апликације са корисницима
  • | _+_ |: слуша поруке у ДМ-овима за више особа

У овом водичу ћемо се претплатити само на | _+_ | јер желимо само да корисници пошаљу ДМ нашем боту.

Претплатите се на Бот догађаје Слацк

Погоди Сачувај промене дугме у доњем десном углу екрана да бисте сачували промене.

Сада можемо тестирати нашу апликацију како бисмо били сигурни да може примати и одговарати на поруке. У свој | _+_ |, додајте следећи део кода:

nodemon app.js

Вратите се на | _+_ | апликацију и пошаљите јој поруку попут | _+_ |. Требало би да добијете одговор.

Слацкбот команда ради поруку

За апликацију као што је база знања, не можемо да пронађемо тачне речи. Потребан нам је начин да проверимо да ли порука коју корисник шаље нашем боту садржи кључну реч која одговара кључној речи у нашој бази знања. У ту сврху, Слацк нам дозвољава да користимо регуларне изразе. На пример, ажурирајмо кодни блок који смо користили горе да изгледа овако:

package.json

Пошаљите поруку која садржи низ | _+_ | у формату | _+_ |. Наш бот ће и даље правилно одговорити јер порука садржи низ | _+_ |.

Одговор робота на поруку

Стварање базе знања

Сада можемо да кренемо у стварање базе знања.

Прво ћемо створити мини базу података за чување често постављаних питања и одговора. Наша база података ће бити једноставна ЈСОН датотека на нашем серверу. Можда бисте желели да размотрите ДБМС као МонгоДБ ако ваши захтеви за подацима постану велики и сложени.

У коренском директоријуму вашег пројекта креирајте | _+_ | датотеку и додајте следеће податке:

... 'main': 'index.js', 'scripts': { 'dev': 'nodemon app.js' }, ....

Направили смо сет од четири питања са њиховим одговорима и груписали их под одређене кључне речи ради лакшег сналажења.

Одговарање на команде

С постављеном ЈСОН базом података потребан нам је начин читања података у њој. Користићемо уграђено фс модул из Ноде.јс за читање из | _+_ | филе. На највишем нивоу вашег | _+_ | датотеку, додајте следећи блок кода:

dev

Сада можемо написати код за одговор на | _+_ | команда. Ова команда ће кориснику приказати сва питања и одговоре у нашој бази података:

app.js

Користимо блокове (које обезбеђује Слацк Болт АПИ) и означавање за форматирање порука које ћемо приказивати корисницима. Да би додатно прилагодио поруке вашег бота када се шаљу кориснику, Слацк нуди Буилдер Кит Кит које можете користити да бисте добили жељени шаблон.

Ово можете тестирати уписивањем наредбе | _+_ | у приватном разговору са | _+_ |.

Тест Цомманд Бот Цонверсатион

Као што видите, у њему су правилно наведена сва често постављана питања у нашој бази знања.

Затим ћемо користити једноставан регуларни израз да откријемо да ли је корисник у питање укључио кључне речи производи. Ако јесу, показаћемо им честа питања са кључним речима производи:

app.js touch app.js SIGNING_SECRET

Да бисте ово тестирали, пошаљите поруку боту која садржи реч продуцтс, а бот ће одговорити са свим информацијама које имају везе са кључном речи продуцтс.

Одговор кључних речи тестних ботова

Ажурирање базе знања

На крају, желимо да пружимо корисницима могућност да додају своје податке у базу знања.

Креирајте нову команду косе црте под називом | _+_ |. Корисници ће позвати ову команду да додају нове податке у нашу базу знања.

Слацк Креирај нову команду косе црте

Направили смо малу промену у овој команди. У савету о употреби навели смо да корисници треба да раздвоје различита поља помоћу цеви | _+_ | карактер. На овај начин можемо узети улазни низ који је послао корисник и поделити га помоћу знака цеви.

Напомена: Ако планирате да додате свој Слацкбот на канал и мислите да можда постоје и друге апликације са сличним командама као ваше, можда би било вредно креирати једну команду, нпр. ., | _+_ | и да корисници додају додатни низ наредби. На пример, користите | _+_ | да бисте приказали сва честа питања у бази знања.

Ево кода који обрађује | _+_ | команда сласх. Ажурирамо | _+_ | датотеку тако што ћете прво прочитати податке у датотеци и додати нове податке које јој је послао корисник:

управљање садржајем ноде јс
BOT_TOKEN

Хајде да тестирамо ово!

Позваћемо | _+_ | команда са следећим текстом: људи | Коме да се обратим ако имам проблема са интернетом? | Позовите ИТ одељење на Ект.9090.

Тхе | _+_ | ендпоинт ће одговорити поруком:

Ажурирајте одговор на поруку крајње тачке

Сада, када зовемо наш | _+_ | команда, требало би да видимо наш нови додани ФАК као део често постављаних питања враћених из наше базе података.

Слацк Сласх команда Нови ФАК

И ево га!

Успешно сте креирали Слацкбот који може да одговори на команде и помене. Такође може прихватити нове податке од корисника и складиштити их у бази података.

Изворни код за овај пример доступан је на мом ГитХуб .

Деплоиинг

Своју апликацију можете поставити на платформу попут Хероку на исти начин на који бисте применили обичну Ноде.јс апликацију. Не заборавите да промените УРЛ у одељку за претплату на догађај у нови који је обезбедио Хероку.

Можете посетити Болт АПИ документација за твоју информацију.

#јавасцрипт #слацк #апи #цхатбот