Vytvořte tohoto malého robota a dodejte svému kanálu přátelštější atmosféru.

Díky přivítání nových uživatelů ve vašem kanálu se budou cítit jako doma, ale sledovat každého uživatele, který se připojí, může být únavný úkol. To je místo, kde přichází na scénu uvítací bot Slack. Robot odešle personalizovanou uvítací zprávu každému novému uživateli kanálu. Je vždy online, takže nebudou žádné pozdní uvítací zprávy.

Dozvíte se, jak nastavit přihlašovací údaje vašeho robota, poslouchat události ve Slacku a odesílat zprávy zpět uživatelům.

Vytvoření robota Slack a získání jeho tokenu API

Vytvořit Slack účet nebo se přihlaste do svého stávajícího. Poté vytvořte a nový pracovní prostor Slack k otestování robota před jeho instalací do aktivního pracovního prostoru.

Přihlaste se do svého nového pracovního prostoru. Slack pro vás automaticky vytvoří náhodný a obecný kanál.

Všimněte si sekce Aplikace v levé dolní části pracovního prostoru. Zde se náš robot objeví, když jej vytvoříte. Přejděte na Web Slack API.

Klikněte na Vytvořte aplikaci. Vytvořte aplikaci Od nuly v okně, které se objeví.

Pojmenujte aplikaci a vyberte pracovní prostor, ve kterém ji chcete vyvíjet.

Poté klikněte na Vytvořit aplikaci knoflík. Kliknutím budete přesměrováni na stránku obsahující základní informace o vaší aplikaci. Poznamenejte si tajemství podpisu pod přihlašovacími údaji aplikace. Váš robot použije podpisové tajemství k ověření, že událost přišla ze Slacku a nebyla zfalšována během přenosu.

Přejděte na funkci OAuth & Permissions.

V části OAuth & Permissions přejděte na položku Bot Token Scopes. Zde přidáte oprávnění k tomu, co váš robot může dělat ve vašem pracovním prostoru. Přidat uživatelé: číst rozsah. Tento rozsah umožní vašemu robotovi zobrazit lidi ve vašem pracovním prostoru. Také přidejte chat: psát rozsah, který umožní vašemu robotu posílat zprávy do pracovního prostoru.

Přejděte zpět k základním informacím o vašem robotovi a klikněte Instalovat do pracovního prostoru.

Na další stránce, která se zobrazí, klikněte na možnost Povolit. Nyní jste dokončili instalaci robota do svého pracovního prostoru. Přejděte na funkci OAuth & Permissions. Poznamenejte si token OAuth uživatele robota, který Slack vygeneruje po instalaci. Robot bude viditelný v sekci aplikace vašeho pracovního prostoru.

Nyní jste nainstalovali robota do svého pracovního prostoru a můžete napsat kód, který jej ovládá.

Příprava vašeho prostředí

Musíte být obeznámeni s základy Pythonu následovat tyto ukázky kódu.

Vytvořte nové virtuální prostředí a a .env soubor. Soubor .env použijete k uložení vašeho tokenu a podpisového tajemství, které musíte zachovat v soukromí. Soubor .env byste neměli nahrávat na žádnou veřejnou platformu.

Chcete-li nainstalovat požadované knihovny, spusťte v terminálu následující příkaz:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Knihovna slack-sdk vám poskytne nástroje pro vytváření aplikací a integrací Slack, včetně metod API, klientů Web API a OAuth. pathlib a dotenv vám pomohou načíst proměnné prostředí. flask vám pomůže zvládnout HTTP požadavky a odpovědi. slackeventsapi vám poskytne posluchač událostí, který přijímá a zpracovává události ze Slacku.

Úplný zdrojový kód je k dispozici v a úložiště GitHub.

Import požadovaných knihoven

Vytvořte nový soubor Python a začněte importem knihoven, které jste dříve nainstalovali, abyste mohli ve svém kódu použít jejich funkce.

import slack_sdk tak jako ochablý
import os
z pathlib import Cesta
z dotenv import load_dotenv
z baňka import Baňka
z slackeventsapi import SlackEventAdapter

os modul Pythonu je dodáván s jazykem, takže jej nemusíte instalovat. SlackEventAdapter je třída z modulu slackeventsapi, která zpracovává události z rozhraní Slack API.

Nastavení Slack Bota

Vytvořte dvě proměnné v souboru .env. Pojmenujte jeden SLACK_BOT_TOKEN a přiřaďte mu token OAuth uživatele robota. Druhý pojmenujte SLACK_SIGNING_SECRET a přiřaďte mu podpisové tajemství. Vraťte se do souboru Python a vytvořte objekt Flask. Poté načtěte proměnné prostředí ze souboru .env pomocí funkce load_dotenv z modulu dotenv.

app = Flask (__name__)
env_path = cesta('.') / '.env'
load_dotenv (dotenv_path=env_path)

Vytvořte instanci slack_event_adapter. Bude zpracovávat události z rozhraní Slack API pomocí proměnné prostředí SLACK_SIGNING_SECRET k ověřování požadavků.

slack_event_adapter = SlackEventAdapter (os.environ[„SLACK_SIGNING_SECRET“],
'/slack/events', aplikace)

/slack/events je koncový bod, který rozhraní Slack API použije k odesílání událostí.

Vytvořte instanci WebClient, která bude odesílat zprávy do Slack API. Proveďte volání API, abyste získali ID robota.

klient = ochablý. Webový klient (token=os.environ[„SLACK_BOT_TOKEN“])
BOT_ID = client.api_call("auth.test")['uživatelské ID']

Nastavte zprávu, kterou budete posílat novým uživatelům, kteří se připojí ke kanálu. Inicializujte prázdnou sadu, která bude sledovat vítané uživatele.

GREETING_MESSAGE = "Dobrý den, {user_name}, vítejte v {channel_name}" \
"kanál! Jsme rádi, že vás tu máme."
welcomed_users = set()

Pozdrav si můžete upravit podle svého.

Vytvoření funkce pro zpracování události „Kanál připojený členem“.

Nastavte posluchač události. Bude poslouchat událost member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Definujte funkci, kterou budete volat, když se uživatel připojí ke kanálu. Pomocí funkce extrahujte ID uživatele a ID kanálu z dat události. Zkontrolujte, zda je uživatel v kanálu nový. Pokud ne, získejte informace o uživateli a kanálu pomocí třídy WebClient. Vytvořte personalizovanou uvítací zprávu. Pošlete pozdrav na kanál

defhandle_member_joined_channel(data_události):
user_id = data_události['událost']['uživatel']
channel_id = data_události['událost']['kanál']

# Posílejte uvítací zprávu pouze v případě, že je uživatel nový
-li uživatelské ID nev vítaní_uživatelé:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
user_name = user_info['uživatel']['název']

channel_info = client.conversations_info (channel=channel_id)
channel_name = channel_info['kanál']['název']

pozdrav = GREETING_MESSAGE.format (user_name=user_name,
channel_name=channel_name)

client.chat_postMessage (channel=id_kanálu, text=pozdrav)

Event_data obsahuje všechny informace o události, ve které se uživatel připojil ke kanálu.

Spusťte aplikaci Flask a spusťte skript. Pokud je spuštěn jako hlavní program (neimportován jako modul), spusťte jej v režimu ladění a poslouchejte na portu 5000.

-li __jméno__ == "__hlavní__":
app.run (debug=Skutečný, port=5000)

Režim ladění automaticky znovu načte aplikaci, když provedete změny v kódu. Nepoužívejte režim ladění v produkčním prostředí, může odhalit citlivé informace a učinit vaši aplikaci zranitelnou vůči útokům. Spusťte aplikaci. Poběží jako lokální server na portu 5000.

Propojení logiky s vaším robotem

Po vytvoření logiky se nyní musíte připojit k robotovi ve vašem pracovním prostoru. To mu umožní používat tuto logiku k provádění operací ve vašem pracovním prostoru. Začněte stažením a spuštěním Ngrok. Ngrok vám pomůže vystavit váš místní webový server internetu.

Po jeho spuštění použijte následující příkaz k mapování adresy vašeho místního serveru na adresu Ngrok.

ngrok http 500

Zkopírujte adresu Ngrok, která se mapuje na vašeho místního hostitele.

Přejděte na web Slack API. Pod Předplatné na akce funkce, povolit události. Pod URL požadavku zadejte adresu Ngrok následovanou /slack/events. To bude ukazovat na váš koncový bod.

Poté se přihlaste k události member_joined_channel. Toto upozorní vašeho robota pokaždé, když se uživatel připojí ke kanálu. Klikněte na Uložit změny. Slack automaticky přidá rozsahy, které potřebujete k odběru této události. Pokaždé, když změníte rozsah, budete muset znovu nainstalovat aplikaci v pracovním prostoru.

Klikněte na přeinstalovat aplikaci.

Testování vašeho robota

Přejděte do svého pracovního prostoru. Přejděte na kanál, ve kterém chcete robota použít. Pošlete přímou zprávu robotovi. Například @Welcoming Bot. Zobrazí se výzva k přidání robota do kanálu. Klikněte na přidat.

Nyní, pokaždé, když se ke kanálu připojí nový uživatel, robot pošle uvítací zprávu.

Obrázek výše ukazuje, jak robot vítá nového uživatele v kanálu.

Vytěžte maximum ze svého pracovního prostoru Slack

Slack boti nejsou jediným způsobem, jak rozšířit funkčnost platformy pro zasílání zpráv Slack. Druhou metodou je integrace nástrojů třetích stran se Slackem. Poskytují další funkce v rámci platformy.

Seznamte se s těmito integracemi, protože zvýší vaši produktivitu ve Slacku.