Stwórz slackbota za pomocą API Slack Bolt i Node.js

May 04 2023
Slack Slack to popularne narzędzie do komunikacji zespołowej, które oferuje różnorodne integracje i rozszerzenia, aby uprościć przepływ pracy Twojego zespołu. Jednym z takich rozszerzeń jest Slack Bot, który pomaga zautomatyzować zadania i usprawnić komunikację.

Luźny

Slack to popularne narzędzie do komunikacji w zespole, które oferuje różnorodne integracje i rozszerzenia upraszczające przepływ pracy zespołu . Jednym z takich rozszerzeń jest Slack Bot , który pomaga zautomatyzować zadania i usprawnić komunikację.

W tym samouczku pokażę ci, jak stworzyć bota Slacka za pomocą Bolt, biblioteki Slacka do tworzenia aplikacji Slack z node.js, które mogą wchodzić w interakcje z twoją wiadomością.

Wymagania wstępne:

Zanim zaczniemy, upewnij się, że masz:

· Node.js v12 lub nowszy zainstalowany na twoim komputerze

· npm zainstalowany na twoim komputerze

· Podstawowa znajomość JavaScript, Node.js

Kroki Aby zainstalować bota w obszarze roboczym

Utwórz nowy obszar roboczy Slack

Aby utworzyć obszar roboczy Slack, wykonaj poniższe czynności —
1. Odwiedź witrynę Slack i
2. Kliknij Utwórz nowy obszar roboczy
3.
Wprowadź swój adres e-mail
4. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zakończyć proces konfiguracji
5. Kliknij łącze weryfikacyjne w e-mail, aby zweryfikować swój adres e-mail i rozpocząć korzystanie z nowego obszaru roboczego Slack.
6. Twórz kanały, zapraszaj członków zespołu i natychmiast wysyłaj wiadomości w nowo utworzonym obszarze roboczym.

Utwórz nową aplikację Slack

Aby utworzyć nową aplikację Slack, wykonaj poniższe czynności —
1. Przejdź do witryny Slack API
2. Kliknij Utwórz aplikację
3. Kliknij Utwórz nową aplikację
4. Nadaj swojej aplikacji nazwę i wybierz obszar roboczy, do którego chcesz ją dodać.
5. Gdy to zrobisz, powinieneś zostać przekierowany na stronę Podstawowe informacje o Twojej aplikacji.

oUwierzytelnianie i uprawnienia

Ustaw uprawnienia aplikacji, zanim aplikacja będzie mogła komunikować się ze Slackiem. Musisz ustawić uprawnienia aplikacji. Aby to zrobić, przejdź do strony OAuth i uprawnienia i przewiń w dół do zakresów. Dodaj do swojej aplikacji następujące zakresy:

Instalowanie aplikacji w obszarze roboczym

Przy wszystkich powyższych konfiguracjach aplikację można teraz zainstalować w obszarze roboczym. Na lewym pasku bocznym przejdź do Ustawienia → Zainstaluj aplikacje → Zainstaluj w obszarze roboczym .

Uwaga: część instalacyjna może być trudna ze względu na obawy dotyczące prywatności. Każda organizacja definiuje swój proces wewnętrznie. Weź to pod uwagę podczas instalowania aplikacji w miejscu pracy Twojej organizacji. Możesz również sprawdzić u swojego administratora Slack wymagania wstępne dotyczące procesu instalacji.

Konfiguracja serwera Slackbot

Teraz napiszmy trochę kodu. Musisz skonfigurować serwer dla Slackbota, który może obsługiwać żądania wysyłane do Slackbota. Czas kodowania!!

Utwórz katalog o nazwie test-boti zainicjuj npm:

mkdir test-bot && cd test-bot
npm init -y

  1. slack/bolt: Zgodnie z opisem jest to najszybszy sposób na rozpoczęcie programowania z platformą Slack
  2. dotenv: Jest to moduł o zerowej zależności, który ładuje zmienne środowiskowe z pliku .env do pliku process.env

yarn add @slack/bolt
yarn add -D dotenv

Przed nawiązaniem komunikacji z botem Slack musi najpierw zweryfikować twojego bota za pomocą SIGNING_SECRETi BOT_TOKEN. Oba powinny być przechowywane w pliku .env, aby nie zostały ujawnione podczas korzystania z Git.

  • SIGNING_SECRET: Przejdź do informacji podstawowych → Poświadczenia aplikacji → Sekret podpisywania.
  • BOT_TOKEN: Przejdź do Ustawienia → Zainstaluj aplikację → Token oAuth użytkownika bota.

SLACK_SIGNING_SECRET="YOUR SIGNING SECRET"
SLACK_BOT_TOKEN="YOUR BOT TOKEN"

Utwórz plik o nazwie index.js, trzymaj go na poziomie głównym katalogu bota i dodaj następujący kod:

const { App } = require("@slack/bolt");
require("dotenv").config();
// Initializes your app with credentials
const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
});

(async () => {
  const port = 3000
  await app.start(process.env.PORT || port);
  console.log('Bolt app started!!');
})();

Jak Slackbot i nasz serwer komunikują się

Twoja aplikacja / bot Slack potrzebuje sposobu na dotarcie do serwera, który utworzyłeś na swoim localhost. Slack ma funkcję zwaną trybem gniazda , która pozwala Slackowi używać WebSockets do łączenia się z serwerem aplikacji.

Przejdź do Ustawienia → Podstawowe informacje → Tokeny poziomu aplikacji. Kliknij przycisk Generuj tokeny i zakresy . Nadaj swojemu tokenowi nazwę i daj swojej aplikacji dwa dostępne zakresy:

  1. połączenia: zapis
  2. uprawnienia: czytaj

Następnie przejdź do Ustawienia → Tryb gniazda . Przełącz przełącznik Włącz tryb gniazda . Na koniec przejdź do swojego index.jspliku i zaktualizuj kod, który inicjuje twój appza pomocą socketMode:truei twój appToken:

const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET,
  socketMode:true, // enable to use socket mode
  appToken: process.env.APP_TOKEN
});

Wiadomości w Slacku

Możesz wspomnieć o swoim bocie lub dołączyć @ i dodatkowy tekst, który zostanie wysłany do twojego bota jako wiadomość.
W Slacku wzmianki o aplikacji są wydarzeniem . Możesz także nasłuchiwać innych wydarzeń, np. gdy nowy użytkownik dołącza do kanału, tworzony jest nowy kanał itp. Aby umożliwić botowi/aplikacji nasłuchiwanie wydarzeń, musisz skonfigurować subskrypcję wydarzeń.

Ponieważ włączyliśmy tryb gniazda, nie musimy określać jawnego adresu URL.

Teraz musimy nadać aplikacji pewne uprawnienia do wydarzeń. Kliknij menu rozwijane subskrypcji zdarzeń botów i dodaj następujące zdarzenie:

Z komunikatami skojarzone są cztery zdarzenia.

  • message.channels: nasłuchuje wiadomości w kanałach publicznych
  • message.groups: nasłuchuje wiadomości w kanałach prywatnych
  • message.im: nasłuchuje wiadomości na czacie Twojej aplikacji z użytkownikami
  • message.mpim: nasłuchuje wiadomości w wieloosobowych wiadomościach na czacie

app.message("hey", async ({ command, say }) => {
    try {
      say("Hello Human!");
    } catch (error) {
        console.log("err")
      console.error(error);
    }
});

Wróć do strony ustawień aplikacji . W obszarze Funkcje kliknij opcję menu Strona główna aplikacji . Przewiń w dół i zaznacz pole Zezwalaj użytkownikom na wysyłanie poleceń z ukośnikiem i wiadomości z karty Wiadomości .

Przeładuj Slacka, używając CMD + RJeśli korzystasz z komputera Mac i CTRL + RPC . Teraz powinieneś być w stanie wysyłać wiadomości do swojego bota.

Wróć do test-botaplikacji i wyślij wiadomość, taką jak @test-bot hey. Powinieneś otrzymać odpowiedź od bota.

Za każdym razem nie możemy naprawdę dopasować dokładnych słów. Potrzebujemy sposobu na sprawdzenie, czy wiadomość wysyłana przez użytkownika do naszego bota zawiera słowo kluczowe / tylko jego część. W tym celu Slack pozwala nam używać wyrażeń regularnych. Na przykład zaktualizujmy blok kodu, którego użyliśmy powyżej, aby wyglądał tak:

// matches any string with RegEx
app.message(/hi/, async ({ command, say }) => {
    try {
      say("Hello Human!");
    } catch (error) {
        console.log("err")
      console.error(error);
    }
});

Mam nadzieję, że podobało Ci się tworzenie bota, który może odsłuchać Twoją wiadomość i odpowiedzieć na nią.

Bot może wykonywać wiele czynności. Wszystko to można znaleźć tutaj:https://slack.dev/bolt-js/concepts

#slackbot #Javascript #nodejs