Stwórz tego luźnego bota i nadaj swojemu kanałowi bardziej przyjazny klimat.

Powitanie nowych użytkowników na kanale sprawi, że poczują się jak w domu, ale śledzenie każdego dołączającego użytkownika może być męczącym zadaniem. I tu pojawia się powitalny bot Slacka. Bot wysyła spersonalizowaną wiadomość powitalną do każdego nowego użytkownika kanału. Jest zawsze online, więc nie będzie późnych wiadomości powitalnych.

Dowiesz się, jak skonfigurować dane uwierzytelniające bota, słuchać zdarzeń w Slack i wysyłać wiadomości z powrotem do użytkowników.

Tworzenie bota Slack i pobieranie jego tokena API

Stwórz Slack konto lub zaloguj się do istniejącego. Następnie utwórz nowy obszar roboczy Slacka przetestować bota przed zainstalowaniem go w aktywnym obszarze roboczym.

Zaloguj się do nowego obszaru roboczego. Slack automatycznie tworzy dla Ciebie losowy i ogólny kanał.

Zwróć uwagę na sekcję aplikacji w lewym dolnym rogu obszaru roboczego. W tym miejscu pojawi się nasz bot, gdy go utworzysz. Przejdź do Witryna Slack API.

instagram viewer

Kliknij Utwórz aplikację. Utwórz aplikację Od zera w oknie, które się pojawi.

Nazwij swoją aplikację i wybierz obszar roboczy, w którym chcesz ją rozwijać.

Następnie kliknij na Utwórz aplikację przycisk. Kliknięcie spowoduje przekierowanie do strony zawierającej podstawowe informacje o Twojej aplikacji. Zanotuj klucz tajny podpisywania w poświadczeniach aplikacji. Twój bot użyje tajnego podpisu, aby zweryfikować, czy zdarzenie pochodzi ze Slacka i nie zostało naruszone podczas transmisji.

Przejdź do funkcji OAuth i uprawnień.

W sekcji OAuth i uprawnienia przejdź do zakresu tokenów botów. Tutaj dodasz uprawnienia do tego, co twój bot może robić w twoim obszarze roboczym. Dodaj użytkownicy: czytaj zakres. Ten zakres pozwoli Twojemu botowi przeglądać osoby w Twoim obszarze roboczym. Dodaj też tzw czat: napisz zakres, który pozwoli Twojemu botowi wysyłać wiadomości do obszaru roboczego.

Wróć do podstawowych informacji o swoim bocie i kliknij Zainstaluj w obszarze roboczym.

Kliknij Zezwól na następnej stronie, która się pojawi. Zakończyłeś instalowanie bota w swoim obszarze roboczym. Przejdź do funkcji OAuth i uprawnień. Zwróć uwagę na token OAuth użytkownika bota, który Slack generuje po instalacji. Bot będzie widoczny w sekcji aplikacji w Twoim obszarze roboczym.

Teraz, gdy zainstalowałeś bota w swoim obszarze roboczym, możesz napisać kod, aby nim sterować.

Przygotowanie środowiska

Musisz znać się na podstawy Pythona podążać za tymi przykładami kodu.

Utwórz nowe środowisko wirtualne i .env plik. Będziesz używać pliku .env do przechowywania tokena i tajnego podpisu, który musisz zachować jako prywatny. Nie należy przesyłać pliku .env na żadną platformę publiczną.

Uruchom następujące polecenie w terminalu, aby zainstalować wymagane biblioteki:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Biblioteka slack-sdk zapewni Ci narzędzia do budowania aplikacji i integracji Slack, w tym metody API, klientów Web API i OAuth. pathlib i dotenv pomogą ci załadować zmienne środowiskowe. flask pomoże ci obsłużyć żądania i odpowiedzi HTTP. slackeventsapi zapewni Ci detektor zdarzeń, który odbiera i obsługuje zdarzenia ze Slacka.

Pełny kod źródłowy jest dostępny w formacie Repozytorium GitHub.

Importowanie wymaganych bibliotek

Utwórz nowy plik Pythona i rozpocznij od zaimportowania wcześniej zainstalowanych bibliotek, aby móc wykorzystać ich funkcjonalność w swoim kodzie.

import slack_sdk Jak luźny
import os
z pathlib import Ścieżka
z dotenv import ładuj_dotenv
z kolba import Kolba
z slackeventsapi import SlackEventAdapter

Moduł os Pythona jest dostarczany z językiem, więc nie trzeba go instalować. SlackEventAdapter to klasa z modułu slackeventsapi obsługująca zdarzenia z API Slacka.

Konfigurowanie Slack Bota

Utwórz dwie zmienne w pliku .env. Nazwij jeden SLACK_BOT_TOKEN i przypisz mu token OAuth użytkownika bota. Drugiemu nadaj nazwę SLACK_SIGNING_SECRET i przypisz mu tajny podpis. Wróć do pliku Pythona i utwórz obiekt Flask. Następnie załaduj zmienne środowiskowe z pliku .env za pomocą funkcji load_dotenv z modułu dotenv.

aplikacja = Kolba (__nazwa__)
ścieżka_środowiska = Ścieżka ('.') / '.env'
load_dotenv (dotenv_path=env_path)

Utwórz instancję slack_event_adapter. Będzie obsługiwał zdarzenia z Slack API, wykorzystując zmienną środowiskową SLACK_SIGNING_SECRET do uwierzytelniania żądań.

slack_event_adapter = SlackEventAdapter (os.environ[„SLACK_SIGNING_SECRET”],
'/luz/wydarzenia', aplikacja)

/slack/events to punkt końcowy, którego API Slack będzie używać do wysyłania zdarzeń.

Utwórz instancję WebClient, która będzie wysyłać wiadomości do Slack API. Wykonaj wywołanie interfejsu API, aby pobrać identyfikator bota.

klient = luz. WebClient (token=os.environ[„SLACK_BOT_TOKEN”])
BOT_ID = klient.api_call("test.autoryzacji")['identyfikator użytkownika']

Skonfiguruj wiadomość, którą wyślesz do nowych użytkowników, którzy dołączą do kanału. Zainicjuj pusty zestaw, który będzie śledził powitanych użytkowników.

WIADOMOŚĆ_POZDROWIENIA = „Witaj {user_name}, witaj w {channel_name}” \
"kanał! Cieszymy się, że tu jesteś”.
mile widziani_użytkownicy = zestaw()

Możesz dostosować powitanie do własnych upodobań.

Tworzenie funkcji do obsługi zdarzenia „członek dołączył do kanału”.

Skonfiguruj detektor zdarzeń. Będzie nasłuchiwał zdarzenia member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Zdefiniuj funkcję, którą wywołasz, gdy użytkownik dołączy do kanału. Użyj tej funkcji, aby wyodrębnić identyfikator użytkownika i identyfikator kanału z danych zdarzenia. Sprawdź, czy użytkownik jest nowy na kanale. Jeśli nie, uzyskaj informacje o użytkowniku i kanale za pomocą klasy WebClient. Utwórz spersonalizowaną wiadomość powitalną. Wyślij pozdrowienia na kanał

pokhandle_member_joined_channel(zdarzenie_dane):
identyfikator_użytkownika = dane_zdarzenia ['wydarzenie']['użytkownik']
identyfikator_kanału = dane_zdarzenia ['wydarzenie']['kanał']

# Wysyłaj wiadomość powitalną tylko wtedy, gdy użytkownik jest nowy
Jeśli identyfikator użytkownika nieW mile widziani_użytkownicy:
Welcome_users.add (identyfikator_użytkownika)

user_info = klient.users_info (użytkownik=identyfikator_użytkownika)
nazwa_użytkownika = informacje_użytkownika['użytkownik']['nazwa']

informacje_kanału = informacje o kliencie.konwersacje (kanał=identyfikator_kanału)
nazwa_kanału = informacje o kanale['kanał']['nazwa']

powitanie = GREETING_MESSAGE.format (nazwa_użytkownika=nazwa_użytkownika,
nazwa_kanału=nazwa_kanału)

klient.chat_postMessage (kanał=identyfikator_kanału, tekst=pozdrowienia)

Event_data zawiera wszystkie informacje o wydarzeniu, w którym użytkownik dołączył do kanału.

Uruchom aplikację Flask i uruchom skrypt. Jeśli działa jako program główny (nie importowany jako moduł), uruchom w trybie debugowania i nasłuchuj na porcie 5000.

Jeśli __nazwa__ == "__główny__":
app.run (debugowanie=PRAWDA, port=5000)

Tryb debugowania automatycznie ładuje ponownie aplikację po wprowadzeniu zmian w kodzie. Nie używaj trybu debugowania w środowisku produkcyjnym, może to ujawnić poufne informacje i narazić aplikację na ataki. Uruchom swoją aplikację. Będzie działać jako lokalny serwer na porcie 5000.

Łączenie logiki z twoim botem

Po utworzeniu logiki musisz teraz połączyć się z botem w swoim obszarze roboczym. Umożliwi to użycie tej logiki do wykonywania operacji w obszarze roboczym. Zacznij od pobrania i uruchomienia Ngrok. Ngrok pomoże Ci wyeksponować lokalny serwer WWW w Internecie.

Po uruchomieniu użyj następującego polecenia, aby zmapować adres serwera lokalnego na adres Ngrok.

ngrok http 500

Skopiuj adres Ngrok mapowany na lokalnego hosta.

Przejdź do witryny Slack API. Pod Subskrypcje wydarzeń funkcja, włącz zdarzenia. Pod Adres URL żądania wprowadź adres Ngrok, a następnie /slack/events. To wskaże twój punkt końcowy.

Następnie zasubskrybuj zdarzenie member_joined_channel. To powiadomi twojego bota za każdym razem, gdy użytkownik dołączy do kanału. Kliknij Zapisz zmiany. Slack automatycznie doda zakresy, których potrzebujesz, aby zasubskrybować to wydarzenie. Za każdym razem, gdy zmienisz zakres, będziesz musiał ponownie zainstalować aplikację w obszarze roboczym.

Kliknij ponownie zainstaluj aplikację.

Testowanie twojego bota

Przejdź do swojego obszaru roboczego. Przejdź do kanału, na którym chcesz użyć bota. Wyślij bezpośrednią wiadomość do bota. Na przykład @Witaj Bot. Pojawi się monit o dodanie bota do kanału. Kliknij dodaj.

Teraz za każdym razem, gdy nowy użytkownik dołączy do kanału, bot wyśle ​​wiadomość powitalną.

Powyższy obrazek pokazuje bota witającego nowego użytkownika na kanale.

Maksymalne wykorzystanie przestrzeni roboczej Slack

Boty Slack to nie jedyny sposób na rozszerzenie funkcjonalności platformy komunikacyjnej Slack. Inną metodą jest integracja narzędzi innych firm ze Slackiem. Zapewniają dodatkową funkcjonalność w ramach platformy.

Zapoznaj się z tymi integracjami, ponieważ zwiększą one Twoją produktywność w Slacku.