Crea un bot da allentamento personalizzato

Sep 16, 2025
Come si fa
Create a custom Slack bot
(Immagine di credito: Web Designer)

Il allentato è uno strumento sempre più popolare per le aziende e le squadre che hanno bisogno di comunicare all'istante. Mentre può - in alcuni casi - essere considerato un'interruzione quotidiana, ha anche un grande potenziale di automazione, offrendo dozzine di integrazioni per mantenere tutto in un posto, e sta lentamente sostituendo le e-mail.

Ci sono molti modi per integrare i tuoi sistemi con allentato; La piattaforma fornisce anche un bot di marca che consente di fornire promemoria o messaggi attraverso il tuo spazio di lavoro digitale. E per miglioramenti ancora più collaborazioni, prova questi deposito cloud. opzioni.

  • 18 dei migliori strumenti di collaborazione per i progettisti

Il gioco offre varie entità che potrebbero essere considerate "robot":

  • WebHooks, che consentono di pubblicare messaggi da altre app in allentamento, ma sono una forma di comunicazione a senso unico,
  • app, per gli anticipi integrazioni (con altre app),
  • Utenti Bot, più su di loro a breve.

In questo tutorial cercheremo in particolare in "Bot Utenti", come programmarli (controlla la nostra guida al I migliori editor di codice Per semplificare la tua vita) e farli in forma le tue esigenze. Questo presuppone di avere accesso a uno spazio allentato dove è possibile aggiungere integrazioni di app. Se non lo stai già parte, sono liberi di creare.

In quanto segue, costruiamo un'app per nodejs per postare e rispondere a particolari messaggi in un canale allentato. Usiamo il modulo 'Slackbots', che è un wrapper per l'API di messaggistica in tempo reale allentabile.

Interessato anche a creare un sito web? Scegli un brillante Builder del sito web e top. web hosting servizio per andare con esso.

01. Configurazione del codice

Questo tutorial presuppone che tu abbia il nodo installato. Se no, fallo ora. Poi Scarica le risorse avrai bisogno. Vi abbiamo fornito un punto di partenza e un framework per il tutorial.

Durante tutto, facciamo uso di moduli come "Slackbots" e "node-slack-upload". Possono essere ottenuti eseguendo il comando di installazione.

npm install

02. Setup allentato

Create a custom Slack bot: Slack setup

Dai al tuo bot un nome utente e invitarlo al tuo canale (Immagine di credito: Web Designer)

Stiamo usando l'integrazione "BOT utente" per il gioco. Per fare ciò, dobbiamo ottenere un token andando a 'https: // & lt; youslackworkspace & gt; .slack.com / apps / a0f7ys25R-bots' e fai clic su "Aggiungi configurazione".

Scegli un nome utente per il tuo bot (possiamo ignorare questo programmaticamente in una fase successiva) e confermare.

Invita il bot al canale desiderato.

Creando un utente Bot otterrai un token nel seguente formato:

xoxb-000000-000000-x0x0xxxxx0xxxx0x

Copia il token per il prossimo passo.

03. Variabili di ambiente

Facciamo uso di variabili di ambiente (un file ".env") per evitare cabina rigida e rivelare token e chiavi segreti, come il token allentato che abbiamo generato e il nome del canale nel tuo spazio di lavoro privato.

Vai avanti e compila il file '.env' con il token e il nome del canale a cui hai invitato l'utente Bot.

 slack_token = xoxb- & lt; yourtoken & gt;
Slack_channel = & lt; channel-name & gt; 

04. Parametri Bot.

Questo passaggio successivo ci porta a 2 file: 'index.js', che avremo un breve aspetto e 'bin / lib / bot.js', dove avviene la maggior parte del nostro sviluppo. Nel file indice, istanziaremo il nostro bot dandolo un nome, che è "WDMBot".

In 'Bot.js' controlliamo i parametri di ogni istanza con nome, token, ecc.

 // index.js
Const Bot = Richiedere ('./ bin / lib / bot'). init
('Wdmbot');

//bot.js.
Const BotParams = {
icon_emoji: ': robot_face:',
AS_USER: FALSE.
};;
Lascia che Bot;
Funzione InitBot (BotName) {
Bot = nuovo Slackbot ({
Token: process.env.slack_token,
Nome: BotName.
}););
} 

05. Posta al canale

Create a custom Slack bot: Post to channel

Ora puoi ottenere il tuo bot per inviare messaggi (Immagine di credito: Web Designer)

Dai un'occhiata alla funzione "SendMessage". Usiamo il metodo 'Pusto'. Ciò gestirà la pubblicazione a qualsiasi tipo di canale, pubblico o privato. Se vuoi solo pubblicare i canali privati ​​è possibile utilizzare invece "Posttocroup" (o "Posttochannel" per uno pubblico). Per inviare il nostro primo messaggio, possiamo aggiungere il codice in 'initbot'.

 Funzione InitBot (BotName) {
Bot = / * Vedi sopra * /
sendMessage ('I'm qui!');
}
// Ora esegui 'NPM START' 

06. BotParams personalizzati.

Avresti dovuto notare che un messaggio da WDMBot appaiono nel tuo canale. Vale la pena notare che in "BotParams", "As_User" è impostato su FALSE, il che ci consente di ignorare il nome e l'immagine. Se impostato su true, utilizzerà il nome e l'immagine che hai impostato quando si ottiene il token.

Potresti cambiare il bot emoji su un'immagine come così:

 Const BotParams = {
icon_url: 'https://pbs.twimg.com/
Profilo_Immages / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
AS_USER: FALSE.
}; 

07. Eventi del canale

Create a custom Slack bot: Channel events

Imposta il tuo bot fino ad ascoltare i messaggi (Immagine di credito: Web Designer)

Pubblicazione dei messaggi è utile, ma per rendere il bot più interattivo, dobbiamo essere in grado di identificare i post da altri utenti nel canale. Ascoltiamo l'evento dei messaggi e poi vediamo cosa succede quando digitiamo al canale. Dovremmo vedere diversi tipi di messaggi registrati, come "user_typing" o "messaggio".

 Funzione InitBot (BotName) {
Bot = / * Vedi sopra * /
Bot.on ('Message', Data = & GT; {
console.log (dati);
}););
} 

08. Rispondi ai messaggi in arrivo

Successivamente, vogliamo rispondere ai messaggi in arrivo del tipo 'Messaggio "e forse a una frase o parola chiave specifica, per evitare di rispondere ad Assolutamente tutto. Assicurati di confrontare le stringhe minuscole se vogliamo abbinare una frase esatta. Potremmo anche vedere se un messaggio 'include ()' una parola particolare.

 Bot.on ('Message', Data = & GT; {
IF (DATA.TYPE === 'Messaggio') {
se (data.text.tolowercase () === 'dove
tu sei?') {
sendMessage ('I'm qui!');
}
}
}); 

09. Limita agli utenti "umani"

I messaggi inviati dagli utenti Bot hanno varie proprietà come un sottotipo di "Bot_Message" e un Bot_ID. Potresti voler limitare la risposta a solo messaggi postati umani per evitare anelli infiniti dei robot che rispondono a se stessi o l'uno dell'altro, se la loro risposta include una delle parole chiave che stai ascoltando.

 Bot.on ('Message', Data = & GT; {
IF (DATA.TYPE === 'Messaggio' & amp; & amp; Dati.
sottotipo! == 'Bot_Message') {
se (data.text.tolowercase ().
include ('hello')) {
sendMessage ('ciao, sono un bot!');
}
}
}); 

10. Risposta personalizzata

Per dare una risposta più personalizzata, è possibile sfruttare l'ID utente del messaggio a cui stai rispondendo. Lento convertirà automaticamente un ID sul nome utente se racchiuso nei tag '& lt; @ & gt;'. Identificare chi stai rispondendo a può essere utile, soprattutto se i membri di più canali si interagiscono con il tuo bot contemporaneamente.

 Bot.on ('Message', Data = & GT; {
IF (DATA.TYPE === 'Messaggio' & amp; & amp; Dati.
sottotipo! == 'Bot_Message') {
se (data.text.tolowercase ().
include ('hello')) {
sendMessage ('hello & lt; @ $ {data.User}
& GT; Sono un bot! ');
}
}
}); 

generate CSS

Se stai cercando di imparare le ultime abilità creative e pratiche per portare il lavoro del cliente, la carriera o l'agenzia al livello successivo, quindi unisciti a noi a Generare CSS: la nostra conferenza focalizzata CSS per web designer e sviluppatori. Scopri di più Qui . Usa il codice di offerta speciale WebDesigner2. Per uno sconto del 10% sui biglietti! (Immagine di credito: Getty / Future)

11. Aggiorna le risposte

I robot possono anche modificare le loro risposte. Solo il loro, però. Quindi, se speravi in ​​un bot di spot da tipografia che avrebbe corretto automaticamente i tuoi messaggi quando spota un errore, non è possibile con la configurazione corrente.

Per aggiornare il messaggio, definiamo una nuova funzione e un booleano globale che utilizzeremo nella nostra demo.

 Let Changereply = False;
Funzione UpdateMessage (MessageParams) {
Bot.UpdateMessage (MessageParams.Channel,
messageparams.ts, messageparams.text,
BotParams);
} 

12. Cambia il messaggio

Create a custom Slack bot: Changing the message

Aggiorna i messaggi che il bot invia (Immagine di credito: Web Designer)

Proviamo ad aggiornare il testo che il bot ci invia. In questo caso, su un evento messaggio, dobbiamo rispondere a un messaggio BOT in arrivo, quindi corrisponderemo a tale condizione per l'aggiornamento, e utilizziamo anche il timestamp del messaggio originale da aggiornare. Questo è così allentato può identificare quale messaggio aggiorna, nel caso in cui altri vengano pubblicati intermedi.

 IF (DATA.TYPE === 'Messaggio' & amp; & amp; data.subtype! ==
'Bot_Message' & AMP; & AMP; data.text) {
se (data.text.includes ('update')) {
sendMessage ('Aggiornerò in 5
secondi ');
changereply = true;
}
}
if (data.type === 'Message' & amp; & amp; data.subtype ===
'Bot_Message' & AMP; & AMP; Changereply) {
Changereply = falso;
Settimimeout (() = & GT; {
updatemessage ({canale: data.channel,
TS: DATA.TS, testo: 'Ho aggiornato'});
}, 5000);
} 

13. Messaggi effimeri

Create a custom Slack bot: Ephemeral messages

I messaggi effimeri sono visti solo da un utente e possono essere cancellati (Immagine di credito: Web Designer)

I messaggi effimeri sono, poiché il nome potrebbe suggerire, temporaneo. Sono anche visibili solo a un utente e possono essere cancellati da loro. Questi tipi di messaggi potrebbero essere utili come punta o promemoria che non è necessario rimanere in modo permanente.

 IF (DATA.Text.TOLOWASCASE (). Include ('HR')) {
EfemeralMessage ({
Canale: dati.Channel,
Utente: data.User,
Testo: 'Se hai bisogno di contattare HR,
La loro email è [email protected] '
}););
}

// La funzione che stiamo chiamando
Funzione EfemeralMessage (MessageParams) {
Bot.PostePemelar (MessageParams.Channel,
messageParams.User, MessageParams.Text,
BotParams);
} 

14. Ricerca utente.

Diversi metodi prenderanno un parametro utente leggermente diverso (ID o nome, che è diverso dal display_name e real_name). Tuttavia, solo l'ID utente è disponibile su eventi dei messaggi. Pertanto possiamo implementare una ricerca del nome utente ottenendo tutti gli utenti e corrispondano all'ID.

 Async Function GetUserName (userid) {
Torna in attesa di bot.getSers ()
.then (data = & gt; {
Let Member = data.members.find
(utente = & GT; {
return user.id === userid;
}););
return member.name;
})
.CATCH (ERR = & GT; CONSOLE.LOG (ERR));
} 

15. Invia messaggi diretti

Con il nuovo ricerca utente, ora possiamo inviare messaggi diretti a un utente, quando i messaggi effimeri non lo fanno. Si noti che i messaggi diretti sono considerati un canale nuovo / diverso, con un ID diverso rispetto al canale originale. Potresti anche implementare una ricerca del canale allo stesso modo dell'utente che abbiamo fatto in precedenza.

 // Nell'evento dei messaggi
se (data.text.tolowercase (). Include ('Bot')) {
senddm ({
Utente: data.User,
Testo: "Come posso aiutare? '
}););
}
// La funzione che stiamo chiamando
Async Function Senddm (MessageParams) {
Lascia che l'utente = attendi GetUserName
(messageParams.User);
ritorno bot.postmessagetouser (utente, messaggio
Params.text, botsparams, (err, dati) = & gt; {
console.log (err)
}););
} 

16. Rispondi con un'immagine

Gli utenti Bot hanno anche le autorizzazioni per caricare file e immagini su un canale. Questa funzionalità non è coperta da "Slackbots" però, quindi dobbiamo istanziare un nuovo uploader, come dimostrato di seguito. Prepara anche una cartella 'Asset' alla root del progetto, con alcune immagini in esso.

Prepariamo una chiamata a "SendImage ()", definita nel prossimo passo.

 // in initbot ()
uploader = nuovo slackupload (process.env.
Slack_token);

// Nell'evento del messaggio
se (data.text.includes ('immagine')) {
Se (! data.upload) {
/ * In questo caso, non c'è messaggio
sottotipo,
Quindi controlliamo che non è innescato da a
Messaggio di caricamento precedente * /
Sia l'immagine = data.text.split ('') 
; SendImage ('questa è l'immagine che tu voleva ', immagine); } }

17. La funzione di caricamento del file

Create a custom Slack bot: The file upload function

Utilizzare il uploader e il filesystem per caricare le immagini (Immagine di credito: Web Designer)

Carichiamo le immagini utilizzando il uploader e il modulo FileSystem (FS). A condizione che il messaggio di un utente sia nel formato "Image & Lt; Imagename.extension & GT;", e tale file esiste nella cartella 'Asset ", l'immagine verrà letta e caricata. In caso contrario, inviamo un messaggio normale (potrebbe anche essere un effimero).

funzione sendimage (messaggio, immagine) {
uploader.uploadfile ({
File: fs.creativeadeam (percorso.join
(__dirname, '../../assets/$оimage}'))
mimetype: 'immagine / *',
tipo di file: '*',
Titolo: Immagine,
Inizia: messaggio,
Canali: canale
}, (err, dati) = & gt; {
Se (ERR) {
sendMessage ('Scusa, non riesco a trovare
$ {immagine} ');
}
}););
} 

18. Posta a più canali

Puoi pubblicare più canali con lo stesso utente Bot, purché sia ​​membro di ciascun canale in cui ti aspetti una risposta. Creiamo una funzione "PostToAll" e aggiorniamo le variabili di ambiente per avere nomi dei canali come valori separati da virgola.

 CANALI CONST = process.env.slack_channel.
Diviso(',');
CANALE CONST = Canali 
; Function PostTorall (messaggio) { canali.Foceach (canale = & GT; { Bot.Postto (canale, messaggio, botparams); });); }

19. I canali diviso

Occasionalmente, potresti voler utilizzare i canali per il debug o rispondere agli eventi in modo diverso con lo stesso bot in diversi canali. Spetta a te allenarti la tua convenzione di denominazione del canale. Assumeremo per il seguente esempio che slack_channel = wdm-tutorial, wdm-tutorial-debug.

 Funzione SplitMessaggi (Messaggio, DebugMessage) {
canali.Foceach (canale = & GT; {
Const Msg = Channel.includes ('Debug')
? DebugMessage: messaggio;
Bot.Postto (canale, MSG, BotParams);
}););
} 

20. Dizionario delle risposte

Siamo state le risposte di codifica rigida direttamente nel messaggio. Andando avanti, per rendere le cose più gestibili, potresti voler memorizzare trigger e risposte, sia in un database o in formato JSON e passare da loro a seconda delle condizioni soddisfatte.

 // Esempio di elemento di risposta
{
INPUT: 'HR',
InputMatch: 'includi',
Risposta: "Se hai bisogno di contattare HR,
la loro email è [email protected] ',
Responsabile: 'Efemeral'
} 

21. Ulteriori risorse

Create a custom Slack bot: Further resources

Ci sono molte più informazioni sul bot da trovare altrove (Immagine di credito: Web Designer)

Ci sono alcune altre proprietà utili disponibili nell'API allentabile. Speriamo che questo tutorial avrà dato una panoramica di ciò che è possibile per tutte le esigenze dei tuoi bot. Ulteriori risorse possono essere trovate leggendo il Documentazione 'Slackbots' , o il pieno Documentazione API allentata .

Questo articolo è stato originariamente pubblicato in questione 289 della rivista creativa di web design Web designer . Comprare il problema 289 qui o Iscriviti al web designer qui .

Articoli Correlati:

  • Costruisci un chatbot AI-Powered
  • Allentato ha avuto un aggiornamento massiccio e lo amerà
  • Come progettare un'esperienza di chatbot

Come si fa - Articoli più popolari

3 tecniche di retop in zbrush essenziali

Come si fa Sep 16, 2025

(Immagine di credito: Glen Southern) Zbrush retopology, o come retopoliare un modello in generale, è una cosa che tu..


Come creare il testo degli urti e gli effetti dell'immagine in CSS

Come si fa Sep 16, 2025

In questo tutorial, ti mostreremo come creare un effetto di testo. Effetti speciali e animazioni possono aiutare i siti Web che si distinguono, creando un impatto immediato sull'utente prima ..


Crea nuvole con FUMFX per 3DS MAX

Come si fa Sep 16, 2025

Questa guida passo-passo è impostata per rivelare come procedere alla creazione di nuvole realistiche. Questo tutorial è l'idea..


Crea un Cavaliere fantasy realistico

Come si fa Sep 16, 2025

In questo workshop, ti mostreremo come dipingere un cavaliere usando Photoshop. , così come la pittura con i medi..


5 consigli per migliorare le tue creazioni VR

Come si fa Sep 16, 2025

Leader del workshop Vertex. Glen Southern. Condivide i suoi migliori consigli per aiutart..


Come dipingere un paesaggio urbano con blocchi di colore

Come si fa Sep 16, 2025

Vista mozzafiato, skyline mozzafiato e bellissimi paesi urbani fanno grandi fotografie, ma possono essere piuttosto scoraggianti ..


Come aggiungere video a PDF interattivi

Come si fa Sep 16, 2025

Un'immagine vale più di mille parole e un video vale un milione. Il video può trasmettere più informazioni più velocemente della stampa o delle immagini statiche. Può rendere diversament..


5 consigli per la scultura in doppio tempo rapido

Come si fa Sep 16, 2025

Sculptare una creatura 3D davvero dettagliata può richiedere giorni - ma è ancora incredibile quanto puoi ottenere in un'ora. Questo modello di uno ibex nubiano è stato scolpito da ..


Categorie