Erstellen Sie einen benutzerdefinierten Slack Bot

Sep 11, 2025
wie man
Create a custom Slack bot
(Bildkredite: Webdesigner)

Slack ist ein zunehmend beliebtes Werkzeug für Unternehmen und Teams, die sofort kommunizieren müssen. Während es in einigen Fällen - als tägliche Unterbrechung betrachtet wird, hat sie auch ein großartiges Automatisierungspotenzial, das Dutzende von Integrationen bietet, um alles an einem Ort zu halten, und es wird langsam E-Mails ersetzt.

Es gibt viele Möglichkeiten, Ihre Systeme mit der Suche zu integrieren. Die Plattform bietet sogar ein Branded Bot, mit dem Sie Erinnerungen oder Nachrichten in Ihrem digitalen Arbeitsbereich liefern können. Und probieren Sie diese für noch mehr Collaboration-Verbesserungen aus Cloud-Speicherung. Optionen.

  • 18 der besten Collaboration-Tools für Designer

Slack bietet verschiedene Entitäten an, die als "Bots" betrachtet werden könnten:

  • webHooks, das ermöglicht, Nachrichten von anderen Apps in den Spielraum zu posten, aber eine Einwegform der Kommunikation,
  • Apps, Für Fortschritte Integrationen (mit anderen Apps),
  • Bot-Benutzer, mehr auf sie in Kürze.

In diesem Tutorial sehen wir besonders auf "Bot-Benutzer" an, wie Sie sie programmieren können (checken Sie unseren Leitfaden an beste Code-Editoren. um dein Leben einfacher zu machen) und mache sie deinen Bedürfnissen. Dies setzt voraus, dass Sie Zugriff auf einen Slack-Speicherplatz haben, in dem Sie App-Integrationen hinzufügen können. Wenn Sie noch kein Teil eines Teils sind, können sie erstellen.

In dem, was folgt, erstellen wir eine Nodejs-App, um auf dem Post zu posten und auf bestimmte Nachrichten in einem Slack-Kanal zu antworten. Wir verwenden das Modul 'Slackbots', das ist ein Wrapper für die Slack Echt-Time-Messaging-API.

Auch interessiert an einer Website? Wählen Sie einen brillanten Webseitenersteller und Top. Web-Hosting Service, um damit zu gehen.

01. Code-Setup.

Dieses Tutorial geht davon aus, dass Sie den Knoten installiert haben. Wenn nicht, tun Sie dies jetzt. Dann Laden Sie das Assets herunter Du brauchst. Wir haben Ihnen einen Ausgangspunkt und einen Rahmen für das Tutorial zur Verfügung gestellt.

Inszeit nutzen wir Module wie 'Slackbots' und 'Node-Slack-Upload'. Sie können durch Ausführen des Installationsbefehls erhalten werden.

npm install

02. Slack-Setup.

Create a custom Slack bot: Slack setup

Geben Sie Ihrem Bot einen Benutzernamen an und laden Sie es in Ihren Kanal ein (Bildkredite: Webdesigner)

Wir verwenden die Integration "Bot User" für den Spielraum. Dazu müssen wir ein Token bekommen, indem wir zu "https: // & lt; youslackworkspace & gt; .slack.com / apps / a0f7ys25r-Bots" und auf "Konfiguration hinzufügen" klicken.

Wählen Sie einen Benutzernamen für Ihren Bot (wir können diese programmgesteuerlich später überschreiben) und bestätigen.

Laden Sie den Bot in den gewünschten Kanal ein.

Wenn Sie einen Bot-Benutzer erstellen, erhalten Sie ein Token im folgenden Format:

xoxb-000000-000000-x0x0xxxxx0xxxx0x

Kopieren Sie das Token für den nächsten Schritt.

03. Umweltvariablen

Wir nutzen von Umgebungsvariablen (A '.env' -Datei), um Hartkodierungen zu vermeiden und geheime Token und Schlüssel aufzuzeigen, wie das Slack-Token, das wir generiert haben, und den Kanalnamen in Ihrem privaten Slack-Arbeitsbereich.

Gehen Sie weiter und füllen Sie die Datei '.env' mit Ihrem Token ein und den Namen des Kanals, an den Sie den Bot-Benutzer eingeladen haben.

 slack_token = xoxb- & lt; yourtoken & gt;
Slack_channel = & lt; Kanal-Name & GT; 

04. Bot-Parameter

Dieser nächste Schritt führt uns auf 2 Dateien: 'Index.js', die wir kurz ansehen, und "bin / lib / bot.js", wo der größte Teil unserer Entwicklung stattfindet. In der Indexdatei, instanziieren wir unseren Bot, indem wir ihm einen Namen geben, der "WDMBOT" ist.

In 'bot.js' steuern wir die Parameter jeder Instanz mit Namen, Token usw.

 // index.js
const bot = erfordern ('./ bin / lib / bot'). init
('Wdmbot');

//bot.js.
const botparams = {
icon_emoji: ': robot_face:',
AS_USER: FALSE.
};
Lass Bot;
Funktion InitBot (Botname) {
Bot = New Slackbot ({{
Token: process.env.slack_token,
Name: Botname.
});
} 

05. Beitrag zum Kanal

Create a custom Slack bot: Post to channel

Jetzt können Sie Ihren Bot, um Nachrichten zu senden (Bildkredite: Webdesigner)

Schauen Sie sich die Funktion "SendMessage" an. Wir verwenden die "Postto" -Methode. Dies wird mit der Buchung an jede Art von Kanal, Öffentlichkeit oder Privatbewertung umgehen. Wenn Sie nur auf private Kanäle posten möchten, können Sie stattdessen 'posttogroup' (oder 'postochannel' für eine öffentliche) verwenden. Um unsere erste Nachricht zu senden, können wir Code in 'InitBot' hinzufügen.

 Funktion InitBot (Botname) {
bot = / * siehe oben * /
SendMessage ('Ich bin hier!');
}
// Jetzt rennen 'NPM Start' 

06. Benutzerdefinierte Botparams.

Sie sollten eine Nachricht von WDMBOT in Ihrem Kanal festgestellt haben. Es ist erwähnenswert, dass in 'BOTARAMS', 'AS_USER' auf FALSE gesetzt ist, mit dem wir den Namen und das Bild überschreiben können. Wenn auf TRUE eingestellt ist, wird der Name und das Bild verwendet, das Sie bei der Herausforderung des Tokens einstellen.

Sie könnten den Bot Emoji in ein Bild wie so ändern:

 const botparams = {
icon_url: 'https://pbs.twimg.com/
Profil_images / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
AS_USER: FALSE.
}; 

07. Kanalereignisse

Create a custom Slack bot: Channel events

Stellen Sie Ihren Bot auf, um Nachrichten zu hören (Bildkredite: Webdesigner)

Die Buchungsnachrichten sind nützlich, aber um den Bot mehr interaktiv zu machen, müssen wir in der Lage sein, Beiträge von anderen Benutzern im Kanal identifizieren zu können. Lassen Sie uns das Message-Event anhören, und dann sehen Sie, was passiert, wenn wir in den Kanal eingeben. Wir sollten verschiedene Nachrichtenarten sehen, die angemeldet sind, wie 'user_typing' oder 'Nachricht'.

 Funktion InitBot (Botname) {
bot = / * siehe oben * /
bot.on ('Nachricht', Daten = & gt; {
console.log (Daten);
});
} 

08. Antworten Sie auf eingehende Nachrichten an

Als nächstes möchten wir auf eingehende Meldungen des Typs "Nachricht" und vielleicht auf einen bestimmten Satz oder ein bestimmtes Schlüsselwort antworten, um es zu vermeiden, auf absolut alles zu antworten. Wir stellen sicher, dass Sie Kleinbuchstaben vergleichen, wenn wir mit einem exakten Satz entsprechen möchten. Wir könnten auch sehen, ob eine Nachricht 'einschließlich ()' ein bestimmtes Wort enthält.

 bot.on ('Nachricht', Daten = & gt; {
if (Data.type === 'Nachricht') {
if (data.text.towercase () === 'wo
bist du?') {
SendMessage ('Ich bin hier!');
}
}
}); 

09. Beschränken Sie sich auf "menschliche" Benutzer

Nachrichten, die von Bot-Benutzern gesendet werden, haben verschiedene Eigenschaften wie ein Subtyp von 'bot_message' und einem bot_id. Vielleicht möchten Sie die Beantwortung auf nur menschliche Botschaften einschränken, um unendliche Schlaufen von Bots zu vermeiden, die auf sich selbst oder einander antworten, wenn ihre Antwort eines der Schlüsselwörter enthält, für die Sie hören.

 bot.on ('Nachricht', Daten = & gt; {
if (Data.type === 'Nachricht' & amp; & amp; Daten.
Subtyp! == 'bot_message') {
if (Data.text.towercase ().
beinhaltet ('hallo')) {
SendMessage ('Hallo, ich bin ein Bot!');
}
}
}); 

10. Personalisierte Antwort.

Um eine personalisierte Antwort anzugeben, können Sie die Benutzer-ID der von Ihnen beantworteten Nachricht nutzen. Slack konvertiert automatisch eine ID in den Benutzernamen, wenn er in den Tags '& lt; @ & gt;' eingeschlossen ist. Wenn Sie identifizieren, auf wen Sie antworten, können nützlich sein, insbesondere wenn mehrere Kanalmitglieder gleichzeitig mit Ihrem Bot interagieren.

 bot.on ('Nachricht', Daten = & gt; {
if (Data.type === 'Nachricht' & amp; & amp; Daten.
Subtyp! == 'bot_message') {
if (Data.text.towercase ().
beinhaltet ('hallo')) {
SendMessage ('hallo & lt; @ $ {data.user}
& gt; Ich bin ein Bot!');
}
}
}); 

generate CSS

Wenn Sie die neuesten kreativen und praktischen Fähigkeiten erlernen möchten, um Ihre Kundenarbeit, Ihre Karriere oder Ihre Agentur auf die nächste Niveau einzunehmen, schließen Sie uns an, um CSS zu generieren - unsere CSS-fokussierte Konferenz für Webdesigner und -entwickler. Finde mehr heraus Hier . Verwenden Sie einen speziellen Angebotscode Webdesigner2. Für einen Rabatt von 10% auf Tickets! (Bildkredite: Getty / Zukunft)

11. Antworten aktualisieren.

Bots können auch ihre Antworten bearbeiten. Nur ihre eigenen. Wenn Sie also auf einen Tippfehler-Bot hoffen, der Ihre Nachrichten automatisch korrigieren würde, wenn er einen Fehler spott, ist das mit dem aktuellen Setup nicht möglich.

Um die Nachricht zu aktualisieren, definieren wir eine neue Funktion und einen globalen Boolean, den wir in unserer Demo verwenden werden.

 Lassen Sie sich von ChangeReply = FALSE;
Funktion UpdateMessage (MessageParams) {
bot.updatemessage (MessageParams.Channel,
MessageParams.ts, MessageParams.text,
Botparams);
} 

12. Ändern Sie die Nachricht

Create a custom Slack bot: Changing the message

Aktualisieren Sie die Nachrichten, die der Bot aussendet (Bildkredite: Webdesigner)

Lassen Sie uns versuchen, den Text zu aktualisieren, den der Bot uns sendet. In diesem Fall müssen wir auf einem Message-Ereignis auf eine eingehende Bot-Nachricht antworten, sodass wir diesem Zustand für das Update übereinstimmen, und wir verwenden auch den Zeitstempel der ursprünglichen Nachricht, die aktualisiert werden sollen. Das ist so selten, dass die Meldung zur Aktualisierung identifiziert wird, falls andere eingeht.

 if (Data.type === 'Nachricht' & amp; & amp; data.syl! ==
'bot_message' & amp; & amp; data.text) {
if (Data.text.includes ('update')) {
SendMessage ('Ich werde in 5 aktualisieren
Sekunden ');
ChangeRePly = true;
}
}
if (data.type === 'Nachricht' & amp; & amp; daty.syn ===
'bot_message' & amp; & amp; changeReply) {
ChangeRePly = FALSE;
settimeout (() = & gt; {
UpdateMessage ({Kanal: Data.Channel,
TS: Data.ts, Text: 'Ich habe aktualisiert'});
}, 5000);
} 

13. Ephemal-Nachrichten

Create a custom Slack bot: Ephemeral messages

Ephemal-Nachrichten werden nur von einem Benutzer gesehen und können gelöscht werden (Bildkredite: Webdesigner)

Ephemal-Nachrichten sind, wie der Name vorschlagen kann, vorübergehend. Sie sind auch nur für einen Benutzer sichtbar und können von ihnen gelöscht werden. Diese Arten von Nachrichten können als Tipp oder Erinnerung nützlich sein, die nicht dauerhaft bleiben müssen.

 if (Data.text.towercase (). Beinhaltet ('hr')) {
ephemeralmessage ({{
Kanal: Data.Channel,
Benutzer: data.user,
Text: 'Wenn Sie mit HR kontaktieren müssen,
Ihre E-Mail ist [email protected] '
});
}

// Die Funktion, die wir anrufen
Funktion Ephemeralmessage (MessageParams) {
bot.postoperal (MessageParams.Channel,
MessageParams.user, MessageParams.text,
Botparams);
} 

14. Benutzersuche.

Verschiedene Methoden dauern ein wenig unterschiedlicher Benutzerparameter (entweder von ID oder Name, der sich vom Display_name und Real_name unterscheidet). Nur die Benutzer-ID ist jedoch bei Nachrichtenereignissen verfügbar. Wir können daher einen Benutzernamen-Lookup implementieren, indem wir alle Benutzer erhalten und mit der ID abgestimmt sind.

 Async-Funktion GetUSername (UserID) {
Rückkehr warten Sie bot.getusers ()
.das (data = & gt; {
Lassen Sie Mitglied = Data.members.find
(user = & gt; {
return user.id === userid;
});
Return Member.name;
})
.Catch (ERR = & GT; console.log (ERR));
} 

15. Direkte Nachrichten senden

Mit dem neuen Benutzer-Lookup können wir nun direkte Nachrichten an einen Benutzer senden, wenn ephemerale Nachrichten einfach nicht tun. Beachten Sie, dass direkte Nachrichten als neuer / unterschiedlicher Kanal angesehen werden, mit einer anderen ID als der ursprüngliche Kanal. Sie können auch einen Kanal-Lookup auf dieselbe Weise implementieren wie der Benutzer, den wir zuvor gemacht haben.

 // In der Meldungsereignis
if (data.text.towercase (). beinhaltet ('bot')) {
senddm ({{
Benutzer: data.user,
Text: 'Wie kann ich helfen?'
});
}
// Die Funktion, die wir anrufen
Async-Funktion SendDM (MessageParams) {
LASSEN SIE User = GetUserName warten
(MessageParams.user);
Bot.PostmessAgsetouser zurückgeben (Benutzer, Nachricht
Params.text, botparams, (ERR, Daten) = & gt; {
console.log (ERR)
});
} 

16. antworte mit einem Bild

Bot-Benutzer verfügen auch über Berechtigungen, um Dateien und Bilder auf einen Kanal hochzuladen. Diese Funktionalität wird jedoch nicht von "Slackbots" behandelt, sodass wir einen neuen Uploader instanziieren müssen, wie nachstehend gezeigt. Bereiten Sie auch einen Ordner "Assets" an Ihre Projektwurzel vor, mit einigen Bildern darin.

Lassen Sie uns einen Anruf zu "SendImage ()" vorbereiten, der im nächsten Schritt definiert ist.

 // in initBot ()
Uploader = New SlackuLoad (Prozess.env.
Slack_token);

// Im Nachrichtenereignis
if (Data.text.includes ('Image')) {
if (! Data.UPLOAD) {
/ * In diesem Fall gibt es keine Nachricht
subtyp,
Also prüfen wir, dass es nicht von einem ausgelöst wird
Vorherige Upload-Nachricht * /
lass Bild = data.text.split ('') 
; SENDIMAGE ('Dies ist das Bild, das Sie gewünscht ', Bild); } }

17. Die Datei-Upload-Funktion

Create a custom Slack bot: The file upload function

Verwenden Sie den Uploader und das Dateisystem, um Bilder hochzuladen (Bildkredite: Webdesigner)

Wir laden Bilder mit dem Uploader und dem Dateisystem (FSYSystem (FS) hoch. Sofern eine Benutzermeldung im Format "Image & lt; imageName.exteny & gt;" ist, und eine solche Datei ist im Ordner "Assets" vorhanden, das Bild wird gelesen und hochgeladen. Wenn nicht, senden wir eine reguläre Nachricht zurück (es könnte sogar ein ephemerales sein).

Funktion SendImage (Nachricht, Bild) {
Uploader.UPLOADFILE ({
Datei: Fs.CreaterAheArtstream (Pfad.join
(__dirname, '../../assets/$,})),
Mimeterype: 'Bild / *',
Dateityp: '*',
Titel: Bild,
InitialComment: Nachricht,
Kanäle: Kanal
}, (ERR, Daten) = & gt; {
Wenn (ERR) {
SendMessage ("Entschuldigung, ich kann nicht finden
$ {Bild} ');
}
});
} 

18. poste an mehrere Kanäle

Sie können an mehrere Kanäle mit demselben Bot-Benutzer posten, solange es sich um ein Mitglied jedes Kanals handelt, in dem Sie eine Antwort erwarten. Lassen Sie uns eine "Posttoall" -Funktion erstellen und die Umgebungsvariablen aktualisieren, um Kanalnamen als Kommas getrennte Werte zu erhalten.

 COND-Kanäle = Prozess.env.sheck_channel.
Teilt(',');
const Channel = Kanäle 
; Funktion posttoall (Nachricht) { Channels.foreach (channel = & gt; { bot.postto (Kanal, Nachricht, Botparams); }); }

19. Split-Kanäle

Gelegentlich möchten Sie möglicherweise Kanäle zum Debuggen verwenden oder auf Ereignisse anders mit demselben Bot in verschiedenen Kanälen reagieren. Es liegt an Ihnen, Ihre Kanalnamenskonvention zu trainieren. Wir gehen aus dem folgenden Beispiel davon aus, dass Slack_Channel = WDM-Tutorial, WDM-TUTORIAL-Debugy.

 Funktion SplitMessages (Nachricht, Debugmessage) {
Channels.foreach (channel = & gt; {
const msg = channel.includes ('debug')
? Debugmessage: Nachricht;
bot.postto (Kanal, MSG, Botparams);
});
} 

20. Wörterbuch der Antworten

Wir sind auf der Nachricht anhörende Antworten direkt in der Nachricht gewesen. Um die Dinge vorwärts zu machen, können Sie die Dinge überschaubarer machen, Sie möchten möglicherweise Auslöser und Antworten speichern, entweder in einem Datenbank- oder JSON-Format, und wechseln Sie je nach den erfüllten Bedingungen zwischen ihnen.

 // Beispiel Antwortelement
{
Eingabe: 'hr',
inputmatch: 'einschließen',
Antwort: 'Wenn Sie mit HR kontaktieren müssen,
Ihre E-Mail ist [email protected] ',
Responseype: 'Ephemeral'
} 

21. Weitere Ressourcen

Create a custom Slack bot: Further resources

Es gibt viel mehr Bot-Informationen, die anderswo gefunden werden können (Bildkredite: Webdesigner)

Es gibt ein paar andere nützliche Eigenschaften in der Slack-API. Hoffentlich hat dieses Tutorial einen Überblick darüber erhalten, was für alle Ihre Bot-Bedürfnisse möglich ist. Weitere Ressourcen finden Sie mit dem Lesen der 'Slackbots' Dokumentation oder der volle Lockere API-Dokumentation. .

Dieser Artikel wurde ursprünglich in Ausgabe 289 des kreativen Webdesign-Magazins veröffentlicht Webdesigner . AUSGABEN 289 Kaufen oder Abonnieren Sie den Webdesigner hier .

Zum Thema passende Artikel:

  • Erstellen Sie ein AI-Powered-Chatbot
  • Locker hatte ein massives Update und wir werden es alle lieben
  • So entwerfen Sie ein Chatbot-Erlebnis

wie man - Die beliebtesten Artikel

6 Schnellspitzen zur Verbesserung Ihrer Bürstenstiftzeichnung

wie man Sep 11, 2025

(Bild Kredit: artem solop) Ich habe immer bemüht, meinen persönlichen Stil zu entwickeln, eine künstlerische Stimm..


Beginnen Sie mit GAV CMS

wie man Sep 11, 2025

(Bildkredite: Zukunft) GRAV ist ein Content-Management-System (CMS) mit einem Unterschied. Content-Management-Systeme..


So machen Sie einen Mahlstick zum Malen

wie man Sep 11, 2025

Der Mahlstick (oder Maulstick, wie es manchmal bekannt ist) ist ein stabilisierendes Trägerwerkzeug, das von Malern verwendet wi..


Wie man Federn zieht

wie man Sep 11, 2025

Wenn Sie schon immer wissen wollten, wie man Federn zieht, und sie super realistisch machen, sind Sie an der richtigen Stelle. Dieser Schritt-für-Schritt-Guide bietet Hinweise und Tipps, um ..


Anatomie Masterclass: Perfekt deine Figuren

wie man Sep 11, 2025

In dieser Meisterklasse zeige ich die grundlegenden Schritte, die Sie benötigen, um zu lernen Wie zeichnet man Zahlen? ..


Master-Benutzererfahrungsstrategie

wie man Sep 11, 2025

UX-Strategie ist ein Prozess, der vor dem Entwurf oder der Entwicklung eines digitalen Produkts begonnen werden sollt..


Wie kann man ein realistisches Sportwagen machen?

wie man Sep 11, 2025

In den letzten Jahren habe ich meine Fähigkeiten in Beleuchtung und Rendering sowie in einigen anderen Techniken mit verschieden..


Prototyp Eine Floating-Aktionstaste in Pixate

wie man Sep 11, 2025

Mit Pixate können Sie schnell prototype interaktive mobile Mobiles, die auf Android- und iOS-Geräten in der Vorschau angezeigt werden können. In diesem Tutorial werden wir es verwenden, um..


Kategorien