Vytvorte tohto slabého robota a dajte svojmu kanálu priateľskejšiu atmosféru.

Privítaním nových používateľov vo vašom kanáli sa budú cítiť ako doma, no sledovať každého používateľa, ktorý sa pripojí, môže byť únavná úloha. To je miesto, kde prichádza uvítací bot Slack. Robot pošle personalizovanú uvítaciu správu každému novému používateľovi kanála. Je vždy online, takže nebudú žiadne neskoré uvítacie správy.

Dozviete sa, ako nastaviť prihlasovacie údaje vášho bota, počúvať udalosti v Slacku a posielať správy späť používateľom.

Vytvorenie robota Slack a získanie jeho tokenu API

Vytvor Slack účet alebo sa prihláste do svojho existujúceho. Potom vytvorte a nový pracovný priestor Slack na otestovanie robota pred jeho inštaláciou do aktívneho pracovného priestoru.

Prihláste sa do svojho nového pracovného priestoru. Slack pre vás automaticky vytvorí náhodný a všeobecný kanál.

Všimnite si sekciu App v ľavej dolnej časti pracovného priestoru. Tu sa náš robot objaví, keď ho vytvoríte. Prejdite na Web Slack API.

instagram viewer

Kliknite na Vytvorte aplikáciu. Vytvorte aplikáciu Od nuly v okne, ktoré sa zobrazí.

Pomenujte svoju aplikáciu a vyberte pracovný priestor, v ktorom ju chcete vyvinúť.

Potom kliknite na Vytvoriť aplikáciu tlačidlo. Kliknutím sa presmerujete na stránku so základnými informáciami o vašej aplikácii. Všimnite si podpisové tajomstvo pod prihlasovacími údajmi aplikácie. Váš robot použije podpisové tajomstvo na overenie, že udalosť prišla zo Slacku a nebola s ňou počas prenosu manipulovaná.

Prejdite na funkciu OAuth & Permissions.

V časti OAuth & Permissions prejdite na položku Rozsahy tokenov botov. Tu pridáte povolenia na to, čo môže váš robot robiť vo vašom pracovnom priestore. Pridajte užívatelia: čítať rozsah. Tento rozsah umožní vášmu robotovi zobraziť ľudí vo vašom pracovnom priestore. Tiež pridajte chat: písať rozsah, ktorý umožní vášmu robotovi odosielať správy do pracovného priestoru.

Prejdite späť na základné informácie o robote a kliknite Inštalovať do pracovného priestoru.

Na ďalšej stránke, ktorá sa zobrazí, kliknite na položku Povoliť. Teraz ste dokončili inštaláciu robota do svojho pracovného priestoru. Prejdite na funkciu OAuth & Permissions. Poznamenajte si token OAuth používateľa robota, ktorý Slack vygeneruje po inštalácii. Robot bude viditeľný v sekcii aplikácie vášho pracovného priestoru.

Teraz, keď ste robota nainštalovali do svojho pracovného priestoru, môžete napísať kód na jeho ovládanie.

Príprava vášho prostredia

Musíte byť oboznámení s základy Pythonu nasledovať tieto ukážky kódu.

Vytvorte nové virtuálne prostredie a a .env súbor. Súbor .env použijete na uloženie vášho tokenu a podpisového tajomstva, ktoré musíte uchovávať v súkromí. Súbor .env by ste nemali nahrávať na žiadnu verejnú platformu.

Spustite nasledujúci príkaz v termináli a nainštalujte požadované knižnice:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Knižnica slack-sdk vám poskytne nástroje na vytváranie aplikácií a integrácií Slack, vrátane metód API, klientov Web API a OAuth. pathlib a dotenv vám pomôžu načítať premenné prostredia. flask vám pomôže zvládnuť požiadavky a odpovede HTTP. slackeventsapi vám poskytne poslucháč udalostí, ktorý prijíma a spracováva udalosti zo Slacku.

Úplný zdrojový kód je dostupný v a úložisko GitHub.

Import požadovaných knižníc

Vytvorte nový súbor Python a začnite importovaním knižníc, ktoré ste predtým nainštalovali, aby ste mohli použiť ich funkcie vo svojom kóde.

importovať slack_sdk ako ochabnutý
importovať os
od pathlib importovať Cesta
od dotenv importovať load_dotenv
od banke importovať Banka
od slackeventsapi importovať SlackEventAdapter

os modul Pythonu je dodávaný s jazykom, takže ho nemusíte inštalovať. SlackEventAdapter je trieda z modulu slackeventsapi, ktorá spracováva udalosti z Slack API.

Nastavenie Slack Bota

Vytvorte dve premenné v súbore .env. Pomenujte jeden SLACK_BOT_TOKEN a priraďte mu token OAuth používateľa robota. Druhú pomenujte SLACK_SIGNING_SECRET a priraďte jej podpisové tajomstvo. Vráťte sa do súboru Python a vytvorte objekt Flask. Potom načítajte premenné prostredia zo súboru .env pomocou funkcie load_dotenv z modulu dotenv.

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

Vytvorte inštanciu slack_event_adapter. Bude spracovávať udalosti z Slack API pomocou premennej prostredia SLACK_SIGNING_SECRET na autentifikáciu požiadaviek.

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

/slack/events je koncový bod, ktorý Slack API použije na odosielanie udalostí.

Vytvorte inštanciu WebClienta, ktorá bude posielať správy do Slack API. Uskutočnite volanie API na získanie ID robota.

klient = ochabnutý. Webový klient (token=os.environ[„SLACK_BOT_TOKEN“])
BOT_ID = client.api_call("auth.test")['ID používateľa']

Nastavte správu, ktorú budete posielať novým používateľom, ktorí sa pridajú ku kanálu. Inicializujte prázdnu množinu, ktorá bude sledovať vítaných používateľov.

GREETING_MESSAGE = "Dobrý deň, {user_name}, vitajte v {channel_name}" \
"kanál! Sme radi, že vás tu máme."
welcomed_users = set()

Pozdrav si môžete prispôsobiť podľa seba.

Vytvorenie funkcie na spracovanie udalosti „Kanál pripojený členom“.

Nastavte poslucháč udalostí. Bude počúvať udalosť member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Definujte funkciu, ktorú zavoláte, keď sa používateľ pripojí ku kanálu. Pomocou funkcie extrahujte ID používateľa a ID kanála z údajov udalosti. Skontrolujte, či je používateľ na kanáli nový. Ak nie, získajte informácie o používateľovi a kanáli pomocou triedy WebClient. Vytvorte personalizovanú uvítaciu správu. Pošlite pozdrav na kanál

defhandle_member_joined_channel(údaje_udalosti):
user_id = údaje_udalosti['udalosť']['používateľ']
channel_id = event_data['udalosť']['kanál']

# Pošlite uvítaciu správu iba vtedy, ak je používateľ nový
ak ID používateľa niev vítaní_používatelia:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
user_name = user_info['používateľ']['názov']

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

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

client.chat_postMessage (channel=channel_id, text=pozdrav)

Event_data obsahuje všetky informácie o udalosti, v ktorej sa používateľ pripojil ku kanálu.

Spustite aplikáciu Flask a spustite skript. Ak je spustený ako hlavný program (neimportovaný ako modul), spustite ho v režime ladenia a počúvajte na porte 5000.

ak __meno__ == "__Hlavná__":
app.run (ladenie=Pravda, port=5000)

Režim ladenia automaticky znova načíta aplikáciu, keď vykonáte zmeny v kóde. Nepoužívajte režim ladenia v produkčnom prostredí, môže odhaliť citlivé informácie a spôsobiť, že vaša aplikácia bude zraniteľná voči útokom. Spustite svoju aplikáciu. Bude bežať ako lokálny server na porte 5000.

Spojenie logiky s vaším robotom

Po vytvorení logiky sa teraz musíte pripojiť k robotovi vo svojom pracovnom priestore. To mu umožní používať túto logiku na vykonávanie operácií vo vašom pracovnom priestore. Začnite stiahnutím a spustením Ngrok. Ngrok vám pomôže odhaliť váš miestny webový server na internete.

Po jeho spustení použite nasledujúci príkaz na mapovanie adresy vášho lokálneho servera na adresu Ngrok.

ngrok http 500

Skopírujte adresu Ngrok, ktorá je priradená k vášmu miestnemu hostiteľovi.

Prejdite na webovú stránku Slack API. Pod Predplatné udalostí funkcia, povoliť udalosti. Pod URL žiadosti zadajte adresu Ngrok a za ňou /slack/events. Toto ukáže na váš koncový bod.

Potom sa prihláste na odber udalosti member_joined_channel. Toto upozorní váš robot zakaždým, keď sa používateľ pripojí ku kanálu. Kliknite na Uložiť zmeny. Slack automaticky pridá rozsahy, ktoré potrebujete na odber tejto udalosti. Zakaždým, keď zmeníte rozsah, budete musieť preinštalovať aplikáciu v pracovnom priestore.

Kliknite na preinštalovať aplikáciu.

Testovanie vášho robota

Prejdite do svojho pracovného priestoru. Prejdite na kanál, v ktorom chcete robota použiť. Pošlite robotovi priamu správu. Napríklad @Welcoming Bot. Zobrazí sa výzva na pridanie robota do kanála. Kliknite na pridať.

Teraz vždy, keď sa ku kanálu pripojí nový používateľ, robot pošle uvítaciu správu.

Obrázok vyššie zobrazuje robota, ktorý víta nového používateľa v kanáli.

Vyťažte maximum zo svojho pracovného priestoru Slack

Slack boti nie sú jediným spôsobom, ako rozšíriť funkčnosť platformy Slack na odosielanie správ. Ďalšou metódou je integrácia nástrojov tretích strán so Slackom. Poskytujú ďalšie funkcie v rámci platformy.

Oboznámte sa s týmito integráciami, pretože zvýšia vašu produktivitu v Slacku.