Utwórz niestandardowy bot bot

Sep 15, 2025
Jak
Create a custom Slack bot
(Kredyt obrazu: projektant stron internetowych)

Luz jest coraz bardziej popularnym narzędziem dla firm i zespołów, które muszą natychmiast się komunikować. Chociaż może - w niektórych przypadkach - należy uznać za codzienne zakłócenia, ma również świetny potencjał automatyki, oferując dziesiątki integracji, aby zachować wszystko w jednym miejscu, a powoli zastępuje e-maile.

Istnieje wiele sposobów na integrację systemów z luzem; Platforma zapewnia nawet markowym bot, który pozwala dostarczyć przypomnienia lub wiadomości w całym cyfrowym obszarze roboczym. I na jeszcze więcej ulepszeń współpracy, spróbuj tych magazyn w chmurze Opcje.

  • 18 najlepszych narzędzi do współpracy dla projektantów

Luz oferuje różne podmioty, które można uznać za "boty":

  • WebHooks, które umożliwiają publikowanie wiadomości z innych aplikacji w luz, ale są jedną drogą komunikacji,
  • apps, dla integracji postępów (z innymi aplikacjami),
  • Użytkownicy botów, więcej na nich wkrótce.

W tym samouczku będziemy wyglądać szczególnie w "Bot Użytkownicy", jak je zaprogramować (sprawdź nasz przewodnik po Najlepszy edytorów kodów ułatwić swoje życie) i sprawiają, że pasują do Twoich potrzeb. To zakłada, że ​​masz dostęp do wolnej przestrzeni, w której można dodać integracje aplikacji. Jeśli nie jesteś jeszcze częścią jednego, mogą swobodnie tworzyć.

W tym, co następuje, zbudujemy aplikację NodeJS do opublikowania i reagowania na konkretne wiadomości w kanale luźnym. Używamy modułu "Slackbots", który jest owijką dla luźnego interfejsu API wiadomości w czasie rzeczywistym.

Cię również zainteresowany Tworzeniem strony internetowej? Wybierz genialny Kreator strony internetowej i top hosting usługa, aby iść z nim.

01. Ustawienia kodu.

Ten samouczek zakłada, że ​​masz zainstalowany węzeł. Jeśli nie, teraz, prawda. Następnie Pobierz zasoby będziesz potrzebował. Dostarczyliśmy Ci punkt wyjścia i ramy dla samouczka.

Przez cały czas korzystamy z modułów, takich jak "Slackbots" i "węzeł-rozliczeniowy". Można je uzyskać, uruchomienie polecenia instalacji.

npm install

02. Setup Slack.

Create a custom Slack bot: Slack setup

Podaj swoją nazwę użytkownika i zaprosić go na swój kanał (Kredyt obrazu: projektant stron internetowych)

Używamy integracji "Użytkownika Bot" za luz. Aby to zrobić, musimy dostać token, przechodząc do "HTTPS: // & LT; YouSlackworkWspace i GT; .sack.com / Apps / A0F7ys25R-Bots" i kliknij "Dodaj konfigurację".

Wybierz nazwę użytkownika dla swojego bota (możemy opisać to programowo na późniejszym etapie) i potwierdzić.

Zaproś bota na żądany kanał.

Tworząc użytkownik bot, otrzymasz token w następującym formacie:

XOXB-000000-000000-X0X0XXXXX0XXXX0X

Skopiuj token na następny krok.

03. Zmienne środowiskowe.

Skorzystamy z zmiennych środowiskowych (plik "

Idź dalej i wypełnij plik "

 Slack_Token = XOXB- & LT;
Slack_channel = & LT; Nazwa kanału & GT; 

04. Parametry botów.

Ten następny krok zabiera nas do 2 plików: "index.js", które będziemy mieli krótki wygląd, a "bin / lib / bot.js", gdzie ma miejsce większość naszego rozwoju. W pliku indeksu pojawiamy nasz bot, dając mu nazwę, która jest "WDMBOT".

W "bot.js" kontrolujemy parametry każdej instancji z nazwą, token itp.

 // index.js
Const Bot = wymaga ("./ bin / lib / bot"). init
("WDMBOT");

//bot.js.
Const Botparams = {
Icon_emoji: ": Robot_face:",
as_user: false.
};
niech bot;
funkcja initbot (botname) {
bot = nowy slackbot ({
Token: proces.env.slack_Token,
Nazwa: Botname.
});
} 

05. Post do kanału

Create a custom Slack bot: Post to channel

Teraz możesz dostać bot do wysyłania wiadomości (Kredyt obrazu: projektant stron internetowych)

Spójrz na funkcję "sendmessage". Używamy metody "postto". Spowoduje to obsługę do dowolnego rodzaju kanału, publicznego lub prywatnego. Jeśli chcesz opublikować tylko kanały prywatne, możesz użyć "posttogroup" (lub "posttochannel" na publiczną). Aby wysłać naszą pierwszą wiadomość, możemy dodać kod w "initbot".

 Funkcja initbot (botname) {
bot = / * patrz powyżej * /
sendmessage ("Jestem tutaj!");
}
// teraz uruchom "NPM Start" 

06. Niestandardowe botsparams.

Należy zauważyć, że wiadomość z WDMBOT pojawia się w kanale. Warto zauważyć, że w "botsparams", "as_user" jest ustawiony na false, co pozwala nam zastąpić nazwę i obraz. Jeśli jest ustawiony na true, użyje nazwy i obrazu ustawionego podczas uzyskania tokena.

Możesz zmienić bot emoji do obrazu taka:

 Const Botparams = {
ICON_URL: "https://pbs.twimg.com/
profil_images / 976112552081010688 /
Wlqvj8d_400x400.jpg ',
as_user: false.
}; 

07. Wydarzenia kanałowe.

Create a custom Slack bot: Channel events

Ustaw swoje bot, aby słuchać wiadomości (Kredyt obrazu: projektant stron internetowych)

Przydatne jest wysyłanie wiadomości, ale aby bot był bardziej interaktywny, musimy być w stanie zidentyfikować posty od innych użytkowników w kanale. Słuchajmy wydarzenia wiadomości, a następnie zobacz, co się dzieje, gdy wpisujemy się do kanału. Powinniśmy zobaczyć różne typy wiadomości, które są rejestrowane, jak "user_typing" lub "wiadomość".

 Funkcja initbot (botname) {
bot = / * patrz powyżej * /
bot.on ("wiadomość", dane = & gt; {
konsola.log (dane);
});
} 

08. Odpowiedz na wiadomości przychodzące

Następnie chcemy odpowiedzieć na przychodzące wiadomości typu "Message", a może do określonej frazy lub słowa kluczowego, aby uniknąć odpowiedzi na absolutnie wszystko. Upewniamy się, że porównujemy małe struny, jeśli chcemy dopasować dokładną frazę. Możemy również zobaczyć, czy wiadomość "obejmuje ()" konkretne słowo.

 Bot.on ("wiadomość", dane = & gt; {
Jeśli (dane.Type === "wiadomość") {
Jeśli (dane.text.tolowercase () === 'gdzie
jesteś?') {
sendmessage ("Jestem tutaj!");
}
}
}); 

09. Ogranicz do użytkowników "Ludzkich"

Wiadomości wysłane przez użytkowników Bot mają różne właściwości, takie jak podtyp "bot_message" i bot_id. Możesz ograniczyć odpowiedź na tylko ludzkie wiadomości, aby uniknąć nieskończonych pętli botów odpowiadających samodzielnie lub siebie, jeśli ich odpowiedź obejmuje jeden z słów kluczowych, dla których słuchasz.

 Bot.on ("wiadomość", dane = & gt; {
Jeśli (dane.Type === "Wiadomość" & AMP; Dane.
podtyp! == 'bot_message') {
Jeśli (dane.text.tolowercase ().
obejmuje ("hello")) {
sendmessage ('hello, jestem botem!');
}
}
}); 

10. Spersonalizowana odpowiedź.

Aby dać bardziej spersonalizowaną odpowiedź, możesz wykorzystać identyfikator użytkownika wiadomości, na którą odpowiadasz. Luz automatycznie przekonwertuje identyfikator do nazwy użytkownika po zamknięciu w tagach '@ & gt;'. Identyfikacja, kto odpowiada, może być przydatny, zwłaszcza jeśli wielu członków kanału oddziałują jednocześnie z botem jednocześnie.

 Bot.on ("wiadomość", dane = & gt; {
Jeśli (dane.Type === "Wiadomość" & AMP; Dane.
podtyp! == 'bot_message') {
Jeśli (dane.text.tolowercase ().
obejmuje ("hello")) {
sendmessage ('hello & lt; @ $ {dane.user}
& gt; Jestem botem!');
}
}
}); 

generate CSS

Jeśli chcesz nauczyć się najnowszych umiejętności kreatywnych i praktycznych, aby zabrać pracę klienta, karierę lub agencję na następny poziom, a następnie dołączyć do nas w Generuj CSS - nasza konferencja CSS dla projektantów stron internetowych i programistów. Dowiedz się więcej tutaj . Użyj specjalnego kodu Oferta Webdesigner2. Dla 10% zniżki na bilety! (Kredyt obrazu: Getty / Future)

11. Zaktualizuj odpowiedzi.

Boty mogą również edytować swoje odpowiedzi. Jednak tylko ich własne. Więc jeśli miałeś nadzieję na botek do zaopatrzenia, który skorygowałoby automatycznie wiadomości, gdy będzie spotkać błąd, nie jest to możliwe z bieżącą konfiguracją.

Aby zaktualizować wiadomość, definiujemy nową funkcję, a globalny boolean, którego użymy w naszym demo.

 Let Changereply = False;
Funkcja UpdateMessage (MessageParams) {
bot.updatuMessage (MessageParams.channel,
MessageParams.ts, MessageParams.Text,
botsparams);
} 

12. Zmień wiadomość

Create a custom Slack bot: Changing the message

Zaktualizuj wiadomości, które wysyła bot (Kredyt obrazu: projektant stron internetowych)

Spróbujmy zaktualizować tekst, który nas wysyła. W takim przypadku na zdarzeniu wiadomości musimy odpowiedzieć na przychodzącą wiadomość botową, więc dopasujemy ten warunek aktualizacji, a także korzystamy z znacznika czasu oryginalnej wiadomości do aktualizacji. To jest tak luźne, które może zidentyfikować, która wiadomość do aktualizacji, na wypadek, gdyby inni opublikowali pomiędzy.

 Jeśli (dane.Type === "wiadomość" & AMP; & AMP; Data.subtype! ==
"bot_message" & amp; & amp; dane.text) {
Jeśli (dane.text.incudes ('Update')) {
sendmessage ("Zaktualizuję w 5
sekundy');
Changereply = true;
}
}
Jeśli (dane.TYPE === "Message '& AMP; & AMP; Data.subtype ===
"bot_message" & amp; & amp; Changereply) {
Changereply = false;
Settimeout (() = & gt; {
UpdateMessage ({kanał: dane.channel,
TS: Data.ts, Tekst: "Zaktualizowałem"});
}, 5000);
} 

13. Wiadomości efemeryczne

Create a custom Slack bot: Ephemeral messages

Wiadomości efemeryczne są widoczne tylko przez jednego użytkownika i można je usunąć (Kredyt obrazu: projektant stron internetowych)

Wiadomości efemeryczne są, ponieważ imię może sugerować, tymczasowe. Są one również widoczne tylko dla jednego użytkownika i można je usunąć. Te typy wiadomości mogą być przydatne jako wskazówka lub przypomnienie, które nie muszą pozostać na stałe.

 Jeśli (dane.Text.tolowerCase (). Zawiera ("HR")) {
efemeralmessage ({
kanał: dane.channel,
Użytkownik: Data.User,
Tekst: "Jeśli chcesz skontaktować się z HR,
Ich e-mail jest [email protected]
});
}

// Funkcja, którą dzwonisz
Funkcja EfemeralMessage (MessageParams) {
bot.postephemeral (MessageParams.channel,
MessageParams.User, MessageParams.Text,
botsparams);
} 

14. Wyszukaj użytkownika.

Różne metody przyjmą nieco inny parametr użytkownika (dowolny identyfikator lub nazwę, która różni się od nazwy_włączenia i Name Real_N). Jednak tylko identyfikator użytkownika jest dostępny na zdarzeniach wiadomości. Możemy zatem wdrożyć wyszukiwanie nazwy użytkownika, otrzymując wszystkich użytkowników i dopasowując identyfikator.

 Async Funkcja GetuserName (UserID) {
Powrót czek na bot.getusers ()
.The (dane = & gt; {
Niech członek = dane.members.find
(user = & gt; {{{
powrót user.id === userid;
});
Return Member.name;
})
.Catch (Err = & GT; Console.log (Err));
} 

15. Wyślij bezpośrednie wiadomości

Dzięki nowym wyszukiwaniu użytkownika możemy teraz wysyłać bezpośrednie wiadomości do użytkownika, gdy wiadomości efemeryczne po prostu nie zrobią. Należy pamiętać, że komunikaty bezpośrednie są uważane za nowy / inny kanał, z innym identyfikatorem niż oryginalny kanał. Możesz także wdrożyć wyszukiwanie kanału w taki sam sposób, jak użytkownik, który wcześniej zrobiliśmy.

 // W wydarzeniu wiadomości
Jeśli (dane.text.tolowercase (). Zawiera ("bot")) {
senddm ({
Użytkownik: Data.User,
Tekst: "Jak mogę pomóc?"
});
}
// Funkcja, którą dzwonisz
Async Funkcja SendDM (MessageParams) {
Pozwól użytkownikowi = czekaj na Getusername
(MessageParams.user);
Return bot.postMessageTouser (użytkownik, wiadomość
Params.text, botparams, (Err, dane) = & gt; {
Console.log (Err)
});
} 

16. Odpowiedz obrazem

Użytkownicy botów mają również uprawnienia do przesyłania plików i obrazów do kanału. Ta funkcjonalność nie jest jednak objęta "Slackbots", więc musimy utworzyć nowy przesyłający, jak pokazano poniżej. Przygotuj również folder "Aktywa" w swoim korzeniu projektu, z niektórymi obrazami w nim.

Przygotujmy dzwonek do "Sendimage ()", zdefiniowany w następnym kroku.

 // w initbot ()
Uploader = Nowy SlackUpload (proces.ENV.
Slack_Token);

// W wydarzeniu wiadomości
Jeśli (dane.text.incudes ('Image')) {
Jeśli (! data.upload) {
/ * W tym przypadku nie ma wiadomości
podtyp,
sprawdzamy więc, że nie jest wywołany przez
Poprzednia wiadomość o przesyłaniu * /
Niech obraz = dane.text.split ('') 
; sendimage ("to jest obraz ty poszukiwany ", obraz); } }

17. Funkcja przesyłania plików

Create a custom Slack bot: The file upload function

Użyj przesyłki i systemu plików, aby przesłać obrazy (Kredyt obrazu: projektant stron internetowych)

Przesyłamy obrazy za pomocą modułu Uploader i Moduł FSSYSTEM (FS). Pod warunkiem, że komunikat użytkownika jest w formacie "Image & LT; Imageneame.extension & GT;", a taki plik istnieje w folderze "Aktywa", obraz zostanie przeczytany i przesłany. Jeśli nie, wysyłamy regularną wiadomość (może nawet być efemerycznym).

Funkcja Sendimage (wiadomość, obraz) {
Uploader.uploadFile ({
Plik: fs.creeneadstream (PATH.JOIN
(__dirname "../../assets/$ {image} ')),
Mimetype: "Image / *",
Typ pliku: '*',
Tytuł: obraz,
InitingComment: Wiadomość,
Kanały: kanał
} (Err, Data) = & GT; {
Jeśli (Err) {
sendmessage ("przepraszam, że nie mogę znaleźć
$ {Image} ');
}
});
} 

18. Post do wielu kanałów

Możesz opublikować wielu kanałów z tym samym użytkownikiem bot, o ile jest członkiem każdego kanału, w którym oczekujesz odpowiedzi. Utwórzmy funkcję "Postoall" i zaktualizuj zmienne środowiskowe, aby mieć nazwy kanałów jako wartości oddzielone przecinkami.

 CING kanały = proces.env.slack_channel.
rozdzielać(',');
Const Channel = Kanały 
; Funkcja PostToall (Message) { kanały.Forach (kanał = & gt; {{ bot.postto (kanał, wiadomość, botsparams); }); }

19. Split kanały

Od czasu do czasu możesz chcieć korzystać z kanałów debugowania lub reagować na wydarzenia inaczej z tym samym botem w różnych kanałach. Do Ciebie zależy, aby trenować konwencję nazewnictwa kanału. Załóżmy na następujący przykład, że Slack_Channel = WDM-Tutorial, Debug WDM-Tutorial.

 Funkcja Splitmessages (wiadomość, debugmessage) {
kanały.Forach (kanał = & gt; {{
Const Msg = Channel.InCludes ("Debug")
? Debugmessage: Wiadomość;
bot.postto (kanał, msg, botsparams);
});
} 

20. Słownik odpowiedzi

Mamy trudno kodować odpowiedzi bezpośrednio w wiadomości. Idziesz naprzód, aby sprawić, by było bardziej łatwe do zarządzania, możesz przechowywać wyzwalacze i odpowiedzi, w formacie bazy danych lub JSON, a przełączanie między nimi w zależności od warunków.

 // Przykładowy element odpowiedzi
{
Wejście: "Hr",
Wprowadź: "Dołącz",
Odpowiedź: "Jeśli trzeba skontaktować się z HR,
Ich e-mail jest [email protected] ",
Odpowiedzi: "Efemeryczny"
} 

21. Dalsze zasoby

Create a custom Slack bot: Further resources

Jest więcej informacji botów, które można znaleźć gdzie indziej (Kredyt obrazu: projektant stron internetowych)

W luzowym interfejsie jest kilka innych przydatnych właściwości. Mam nadzieję, że to samouczek otrzyma przegląd tego, co możliwe dla wszystkich potrzeb botów. Dalsze zasoby można znaleźć przez czytanie Dokumentacja "Slackbots" lub pełny Dokumentacja luźna API .

Ten artykuł został pierwotnie opublikowany w wydaniu 289 kreatywnego magazynu projektowania stron internetowych Projektant stron internetowych . Kup problem 289 tutaj lub Subskrybuj tutaj projektant stron internetowych .

Powiązane artykuły:

  • Zbuduj chatbot z zasilaniem AI
  • Luz miał ogromną aktualizację i wszyscy je kochasz
  • Jak zaprojektować doświadczenie chatbot

Jak - Najpopularniejsze artykuły

Jak używać inteligentnych warstw w Photoshopie

Jak Sep 15, 2025

Przy uwzględnieniu powtarzających się wzorów i wzorów w ilustracji, niewiele narzędzi będzie tak przydatne lub jako potę�..


Utwórz wsuwane menu

Jak Sep 15, 2025

Świetny sposób na poprawę doświadczenie użytkownika Na twojej stronie jest dodanie slajdów; Tworzy sposób łapania wzrok dla użytkowników, aby znaleźć ..


Twórz style i układy CSS Ilość

Jak Sep 15, 2025

W tym samouczku zajmiemy się sposobami zmiany stylów CSS elementów, a także pozornie stylizując rodziców, w zależności od..


Utwórz pędzel siatkowy przemieszczania wektora

Jak Sep 15, 2025

Nie przegap VEREX 2018. , nasze debiutanckie wydarzenie dla społeczności CG. Zapakowany..


Jak tworzyć niesamowite efekty z kształtami CSS

Jak Sep 15, 2025

Deweloperzy Frontend mają tendencję do myślenia w prostokątach; Prostokąty wewnątrz prostokątów wewnątrz prostokątów w..


Utwórz plik kinowy z Photoshopem w 60 sekund

Jak Sep 15, 2025

Szkoda, że ​​nie możesz odebrać nowej umiejętności, ale nie mogę znaleźć czasu, aby usiąść i uczyć się? Adobe's. Zrób teraz listę odtwarzania może być po p..


Utwórz aplikację, która gromadzi dane czujnika

Jak Sep 15, 2025

Dziś przystępne platformy rozwijające się połączone produkty cieszą się szeroką dostępnością, a my widzieliśmy na zw..


Jak stworzyć żywą bajkę Królową

Jak Sep 15, 2025

Zostanie poproszony o malowanie zły tyłek Królowej przez nikt inny niż mój ulubiony magazyn, Imaginefx, dostał mnie bardzo ..


Kategorie