Hoe maak je een Chat Bot in Ruby met behulp van Slack API - DeLaatbusiness
betekenis chatbot

Hoe maak je een Chat Bot in Ruby met behulp van Slack API

3 min


114
6 gratis internet marketing ebooks, klik hier voor download

Toen ik een paar maanden geleden voor het eerst begon bij een coderende bootcamp, besloten klasgenoot Dana Simmons en ik dat het heel leuk zou zijn om een ​​bot te maken voor het Slack-kanaal van onze cohort. Omdat we op dat moment Ruby aan het leren waren, zocht ik op internet hoe ik aan de slag kon en kwam ik dit artikel tegen dat beschrijft hoe te communiceren met Slack API met behulp van een paar edelstenen. Hoewel dit een prima instap bleek te zijn, was er veel meer werk nodig om alles soepel te laten verlopen. Ik dacht dat het nuttig zou zijn om onze ervaring te delen en een simpele nieuwe bot te maken.

Eerst heb je een Slack-werkruimte nodig waarin je je bot kunt ontwikkelen. Ga hierheen om een ​​nieuwe werkruimte te maken als u geen toegang hebt tot een ruimte waarin u voldoende kunt testen. De volgende stap is om hierheen te gaan en te klikken op Een app maken . Geef de app een beschrijvende naam en kies de ontwikkelingswerkruimte uit de vorige stap. Kies de optie Bots onder de kop Functies en functies toevoegen . Volg de instructies om een ​​botgebruiker toe te voegen en kies vervolgens onder Instellingen onder App de app installeren en vervolgens de app installeren op de werkruimte. U wordt nu gevraagd om de botgebruiker te autoriseren en krijgt dan twee autorisatietokens: een algemeen toegangstoken en een token voor de botgebruiker. Zorg ervoor dat u het bot-gebruikerstoken vasthoudt, voorafgegaan door xoxb– we zullen dat in een latere stap nodig hebben.

Maak vervolgens een nieuwe lokale projectmap en voeg een Gemfile toe door mkdir my-bot && cd $_ && touch Gemfilein de terminal te typen . Voeg het volgende toe aan de Gemfile:

bron "https://rubygems.org/" gem 'slack-ruby-bot' 
gem 'celluloid-io'

Maak een projectskelet met mkdir bin config lib && touch config/.token. Kopieer en plak je bot- gebruikerstoken in config/.token. Als u van plan bent om uw code online te hosten, is het belangrijk om ervoor te zorgen dat u niet incheckt config/.tokenin uw repository – u ontvangt vrijwel onmiddellijk een e-mail van Slack waarin staat dat de beveiliging is aangetast en dat u een nieuw token moet genereren.

Top 4 Bot-zelfstudies

Om dit te voorkomen, voert u gewoon het volgende uit in de root-projectmap:

git init 
echo ".token" >> .gitignore

Laten we beginnen met het bouwen van onze bot. We zullen een opdracht voor de bot definiëren met behulp van reguliere expressieovereenkomst. Maak een nieuw bestand lib/bot.rben voeg het volgende toe:

vereisen_relatieve klasse '../config/environment' MyBot <SlackRubyBot :: Bot- 
  opdracht /.*\bhello\b.*$/i do | client, data, _match | 
    client.say (kanaal: data.channel, tekst: "hi") 
  end 
end

Hoewel config/environment.rbhet nog niet bestaat, maken we het in de volgende stap. Laten we ons nu concentreren op wat er in de opdracht gebeurt. De reguliere expressie /.*\bhello\b.*$/idoet wat bijpassende magie: komt .*overeen met elke tekst voor en na het woord hello, gedefinieerd door de woordgrens \b. Het $geeft het einde van de string aan en inegeert aan het einde van de uitdrukking hoofdlettergevoeligheid voor overeenkomsten. We geven de commandmethode een blok door, dat de bot instrueert om op het commando in het kanaal te antwoorden met de tekst hi .

Tijd voor de definitieve instelling. In config/environment.rbde volgende code:

vereisen 'bundler / setup' 
Bundler.require vereisen_relative '../lib/bot' SlackRubyBot :: Client.logger.level = Logger :: WARN

De laatste regel maakt console-logging mogelijk terwijl de bot wordt ingezet voor foutopsporing. Maak een nieuw bestand bin/run.rben voeg de volgende code toe om de bot te starten:

vereisen_relatieve ' ../config/environment ' MyBot.run

Het laatste stukje van de puzzel is het maken van enkele taken om een ​​omgevingsvariabele in te stellen voor ons autorisatietoken en de bot in te zetten. Hiervoor gebruiken we Rake, een populaire automatiseringstool. Maak een nieuw bestand in de hoofdmap van het project Rakefileen voeg de volgende taken toe:

taak: milieu doen
   ENV [ 'SLACK_API_TOKEN'] = File.read ( 'config / .token') chomp. 
end namespace: implementeren doen
   desc 'start mybot' 
  taak: run =>: milieu doen
     require_relative 'bin / run' 
  end 
end

Typ nu gewoon in de console rake deploy:runom de bot in te zetten. Als alles correct is ingesteld, zou je een bericht moeten zien dat de bot succesvol is verbonden met je Slack-werkruimte. Maak een nieuw kanaal in de werkruimte en voeg de botgebruiker toe aan het kanaal. Adres de bot bij naam – @mybot Hello!– en je zou moeten worden begroet met een reactie! Merk op dat vanwege de reguliere expressieovereenkomst de bot de opdracht zal herkennen zolang het woord helloergens in de string is opgenomen. Dit is wat het mogelijk maakt om gewone taal te parseren en resulteert in een niveau van waargenomen intelligentie van de bot.

Waar nu heen?

Hoewel het opstarten van de bot een beetje setup vereist, is het gemakkelijk om te zien dat het eenvoudig moet zijn om een ​​verscheidenheid aan opdrachten te programmeren die de bot in de chat zou moeten herkennen en dienovereenkomstig reageren. In het ideale geval wilt u uw bot inzetten voor een service als Heroku in plaats van de bot lokaal te implementeren.


What's Your Reaction?

hate hate
0
hate
confused confused
0
confused
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Erwin@delaatbusiness.com
Dag, Hulp nodig met internet marketing of websites maken? neem dan contact op

0 Comments

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Choose A Format
Personality quiz
Series of questions that intends to reveal something about the personality
Trivia quiz
Series of questions with right and wrong answers that intends to check knowledge
Poll
Voting to make decisions or determine opinions
Story
Formatted Text with Embeds and Visuals
List
The Classic Internet Listicles
Countdown
The Classic Internet Countdowns
Open List
Submit your own item and vote up for the best submission
Ranked List
Upvote or downvote to decide the best list item
Meme
Upload your own images to make custom memes
Video
Youtube, Vimeo or Vine Embeds
Audio
Soundcloud or Mixcloud Embeds
Image
Photo or GIF
Gif
GIF format