Bot di Slack in Node.js usando Botkit

Su insidevcode spesso ci siamo dedicati ai Bot di Telegram. Oggi parliamo sempre di Bot, ma questa volta sulla piattaforma Slack, famoso programma di comunicazione orientato all’ambito lavorativo. Se non lo conoscete, vi consiglio di andare a darci un occhio, potrebbe risultare davvero molto utile per il vostro ufficio. Quindi vediamo come creare un semplice Bot di Slack.

Prerequisiti

Per comprendere al meglio questa breve guida sui Bot di Slack occorre:

  • Sapere usare un minimo il terminale
  • Conoscere un minimo di Node.Js, o almeno Javascript

Detto ciò, partiamo!

1. Creiamo il Bot di Slack dal sito

Per prima cosa andiamo su slack.com/apps, e vedremo una pagina come quella in foto:

Bot di Slack #1

Clicchiamo su Build, in alto a destra di fianco al nome del vostro slack (in questo caso insidevcode).

Bot di Slack #2

Selezioniamo il secondo, “Something just for my team” cliccando sul pulsante verde “Make a Custom Integration“. Poi se volete rendere il vostro Bot pubblico in futuro potrete farlo.

Bot di Slack #3

A questo punto selezioniamo Bot, e inseriamo il nome che vorremo dare al nostro bot.

Fatto ciò ci troveremo davanti ad una pagina con molte impostazioni per il Bot, quali immagine di profilo, descrizione e via dicendo. Quello che interessa primariamente a noi è l’API Token, una stringa di caratteri alfanumerica che permette di identificarci come quel bot. Attenzione: È quindi una password da tenere segreta!

2. Codice del Bot

Il nostro bot è stato creato, ma per ora non fa nulla. Come gli diciamo cosa fare? In questa guida utilizzeremo il linguaggio Node.Js insieme alla libreria Botkit, libreria che ci permette di non preoccuparci di come avvengono le API verso Slack.

Quindi innanzitutto installiamo botkit con il comando da terminale:

npm install botkit

Ed ora creiamo un file che chiameremo bot.js, con il seguente contenuto, dove ovviamente al posto di “<your token>” dovremo inserire il nostro token ottenuto al punto precedente:

var Botkit = require("botkit");
var controller = Botkit.slackbot();
var bot = controller.spawn({
  token: "<your token>"
});
 
bot.startRTM(function(err,bot,payload) {
  if (err) {
    throw new Error('Could not connect to Slack');
  }
});
 
controller.hears(["Hello","Hi"],["direct_message","direct_mention","mention","ambient"],function(bot,message) {
  bot.reply(message,'Hello, how are you today?');
});

E facciamolo partire con:

node bot.js

Bot di Slack #4

Ed ecco qui il nostro bot funzionante!

3. Come funziona?

Tutto gira intorno alla libreria Botkit, questa si occupa di dialogare con i server di slack tramite le API pubbliche e grazie a RTM (Real Time Messaging).

Noi con il codice che abbiamo scritto, comunichiamo il nostro token a botkit, che si occupa delle configurazioni necessarie, e iniziamo a dialogare con i server con il comando startRTM.

A seguito chiediamo, con hears, di “ascoltare” in attesa di un messaggio contenente le parole scritte (Hello o Hi) e rispondiamo con il comando reply.

Bene per oggi è tutto, se volete vedere l’articolo originale in lingua inglese, eccolo qui: FossBytes

Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram , per restare sempre in contatto con noi e con le nostre guide.

Appassionato fin da piccolo al mondo telematico, segue la sua passione studiando Ingegneria Informatica presso il Politecnico di Milano. Predilige linguaggi lato client come C, Java, Ruby e Python, ma ha conoscenze anche nel web con PHP, SQL, Javascript, HTML e CSS. Preferisce lavorare approfonditamente ai cuori dei programmi, tralasciando la grafica come parte finale ‘opzionale’.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram
Google Plus