Ustvarite tega slack bota in dajte svojemu kanalu prijaznejše vzdušje.
Če sprejmete nove uporabnike na svoj kanal, se počutijo kot doma, vendar je spremljanje vsakega uporabnika, ki se pridruži, lahko naporno opravilo. Tu nastopi bot za dobrodošlico Slack. Bot pošlje prilagojeno pozdravno sporočilo vsakemu novemu uporabniku kanala. Vedno je na spletu, zato ne bo poznih pozdravnih sporočil.
Naučili se boste, kako nastaviti poverilnice svojega bota, poslušati dogodke v Slacku in pošiljati sporočila nazaj uporabnikom.
Ustvarjanje Slack Bota in pridobivanje njegovega žetona API
Ustvariti Slab račun ali se prijavite v obstoječo. Nato ustvarite a nov delovni prostor Slack da preizkusite svojega bota, preden ga namestite v svoj aktivni delovni prostor.
Prijavite se v svoj novi delovni prostor. Slack za vas samodejno ustvari naključen in splošen kanal.
Opazite razdelek z aplikacijami v spodnjem levem kotu delovnega prostora. Tukaj se bo pojavil naš bot, ko ga ustvarite. Pomaknite se do Spletno mesto Slack API.
Kliknite na Ustvarite aplikacijo. Ustvarite aplikacijo Od začetka v oknu, ki se prikaže.
Poimenujte svojo aplikacijo in izberite delovni prostor, v katerem jo želite razvijati.
Nato kliknite na Ustvari aplikacijo gumb. S klikom boste preusmerjeni na stran z osnovnimi informacijami o vaši aplikaciji. Upoštevajte skrivnost podpisovanja pod poverilnicami aplikacije. Vaš bot bo uporabil skrivnost podpisovanja, da preveri, ali je dogodek prišel iz Slacka in ni bil spremenjen med prenosom.
Pojdite na funkcijo OAuth & Permissions.
V razdelku OAuth & Permissions se pomaknite do možnosti Bot Token Scopes. Tukaj boste dodali dovoljenja za to, kaj lahko vaš bot počne v vašem delovnem prostoru. Dodajte uporabniki: preberite Obseg. Ta obseg bo vašemu botu omogočil ogled ljudi v vašem delovnem prostoru. Dodajte tudi klepet: piši obseg, ki bo vašemu botu omogočil pošiljanje sporočil v delovni prostor.
Pomaknite se nazaj do osnovnih informacij vašega bota in kliknite Namesti v Workspace.
Na naslednji strani, ki se prikaže, kliknite Dovoli. Zdaj ste končali z namestitvijo bota v svoj delovni prostor. Pomaknite se do funkcije OAuth & Permissions. Upoštevajte uporabniški žeton OAuth Bot, ki ga Slack ustvari po namestitvi. Bot bo viden v razdelku aplikacije v vašem delovnem prostoru.
Zdaj, ko ste bota namestili v svoj delovni prostor, lahko napišete kodo za nadzor.
Priprava vašega okolja
Morate biti seznanjeni z osnove Pythona sledite tem vzorcem kode.
Ustvarite novo virtualno okolje in a .env mapa. Datoteko .env boste uporabili za shranjevanje žetona in skrivnosti podpisovanja, ki ju morate ohraniti zasebno. Datoteke .env ne nalagajte na nobeno javno platformo.
Zaženite naslednji ukaz v terminalu, da namestite zahtevane knjižnice:
pip namestite slack-sdk pathlib dotenv flask slackeventsapi
Knjižnica slack-sdk vam bo zagotovila orodja za izdelavo aplikacij in integracij Slack, vključno z metodami API, odjemalci spletnega API-ja in OAuth. pathlib in dotenv vam bosta pomagala naložiti spremenljivke okolja. flask vam bo pomagal pri obdelavi zahtev in odgovorov HTTP. slackeventsapi vam bo zagotovil poslušalca dogodkov, ki sprejema in obravnava dogodke iz Slacka.
Celotna izvorna koda je na voljo v a Repozitorij GitHub.
Uvažanje zahtevanih knjižnic
Ustvarite novo datoteko Python in začnite z uvozom knjižnic, ki ste jih predhodno namestili, tako da lahko uporabite njihovo funkcionalnost v svoji kodi.
uvoz slack_sdk kot ohlapnost
uvoz os
od pathlib uvoz Pot
od dotenv uvoz load_dotenv
od bučko uvoz Bučka
od slackeventsapi uvoz SlackEventAdapter
Pythonov os modul prihaja z jezikom, zato vam ga ni treba namestiti. SlackEventAdapter je razred iz modula slackeventsapi, ki obravnava dogodke iz API-ja Slack.
Nastavitev Slack Bota
Ustvarite dve spremenljivki v datoteki .env. Enemu poimenujte SLACK_BOT_TOKEN in mu dodelite žeton OAuth uporabnika bota. Drugega poimenujte SLACK_SIGNING_SECRET in mu dodelite skrivnost podpisovanja. Vrnite se v datoteko Python in ustvarite predmet Flask. Nato naložite spremenljivke okolja iz datoteke .env s funkcijo load_dotenv iz modula dotenv.
app = Flask (__ime__)
env_path = pot('.') / '.env'
load_dotenv (dotenv_path=env_path)
Ustvarite primerek slack_event_adapter. Obravnaval bo dogodke iz API-ja Slack z uporabo spremenljivke okolja SLACK_SIGNING_SECRET za preverjanje pristnosti zahtev.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/events', aplikacija)
/slack/events je končna točka, ki jo bo Slack API uporabil za pošiljanje dogodkov.
Ustvarite primerek WebClient, ki bo pošiljal sporočila API-ju Slack. Izvedite klic API, da pridobite ID bota.
stranka = ohlapnost. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['Uporabniško ime']
Nastavite sporočilo, ki ga boste poslali novim uporabnikom, ki se pridružijo kanalu. Inicializirajte prazen niz, ki bo spremljal pozdravljene uporabnike.
GREETING_MESSAGE = "Pozdravljeni {user_name}, dobrodošli na {channel_name} " \
"kanal! Veseli smo, da ste tukaj."
dobrodošli_uporabniki = set()
Voščilo lahko prilagodite svojim željam.
Ustvarjanje funkcije za obravnavo dogodka »Kanal, ki se je pridružil članu«.
Nastavite poslušalca dogodkov. Poslušal bo dogodek member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Določite funkcijo, ki jo boste poklicali, ko se uporabnik pridruži kanalu. S to funkcijo izvlecite ID uporabnika in ID kanala iz podatkov o dogodku. Preverite, ali je uporabnik nov na kanalu. Če ne, pridobite informacije o uporabniku in kanalu z uporabo razreda WebClient. Ustvarite prilagojeno pozdravno sporočilo. Pošljite pozdrav kanalu
defhandle_member_joined_channel(event_data):
user_id = event_data['dogodek']['uporabnik']
channel_id = event_data['dogodek']['kanal']# Pozdravno sporočilo pošljite le, če je uporabnik nov
če Uporabniško ime nev dobrodošli_uporabniki:
welcomed_users.add (user_id)user_info = client.users_info (uporabnik=user_id)
uporabniško_ime = uporabniške_info['uporabnik']['ime']channel_info = client.conversations_info (channel=channel_id)
ime_kanala = info_kanala['kanal']['ime']pozdrav = GREETING_MESSAGE.format (uporabniško_ime=uporabniško_ime,
ime_kanala=ime_kanala)
client.chat_postMessage (channel=channel_id, text=greeting)
Event_data vsebuje vse informacije o dogodku, v katerem se je uporabnik pridružil kanalu.
Zaženite aplikacijo Flask in zaženite skript. Če se izvaja kot glavni program (ni uvožen kot modul), se izvaja v načinu za odpravljanje napak in posluša na vratih 5000.
če __ime__ == "__glavni__":
app.run (debug=Prav, vrata=5000)
Način za odpravljanje napak samodejno znova naloži aplikacijo, ko spremenite kodo. Ne uporabljajte načina za odpravljanje napak v produkcijskem okolju, saj lahko razkrije občutljive informacije in naredi vašo aplikacijo ranljivo za napade. Zaženite svojo aplikacijo. Deloval bo kot lokalni strežnik na vratih 5000.
Povezovanje logike z vašim botom
Ko ustvarite logiko, se morate zdaj povezati z botom v svojem delovnem prostoru. To mu bo omogočilo uporabo te logike za izvajanje operacij v vašem delovnem prostoru. Začnite s prenosom in zagonom Ngrok. Ngrok vam bo pomagal izpostaviti vaš lokalni spletni strežnik internetu.
Ko ga zaženete, uporabite naslednji ukaz za preslikavo naslova vašega lokalnega strežnika v naslov Ngrok.
ngrok http 500
Kopirajte naslov Ngrok, ki se preslika na vašega lokalnega gostitelja.
Pojdite na spletno mesto Slack API. Pod Naročnine na dogodke omogočite dogodke. Spodaj URL zahteve vnesite naslov Ngrok, ki mu sledi /slack/events. To bo kazalo na vašo končno točko.
Nato se naročite na dogodek member_joined_channel. To bo vašega bota obvestilo vsakič, ko se uporabnik pridruži kanalu. Kliknite na Shrani spremembe. Slack bo samodejno dodal obsege, ki jih potrebujete za naročanje na ta dogodek. Vsakič, ko spremenite obseg, boste morali znova namestiti svojo aplikacijo v delovni prostor.
Kliknite znova namestite aplikacijo.
Testiranje vašega bota
Pojdite v svoj delovni prostor. Pojdite na kanal, na katerem želite uporabiti bota. Pošlji neposredno sporočilo botu. Na primer @Welcoming Bot. Pojavi se poziv za dodajanje bota na kanal. Kliknite dodaj.
Zdaj bo bot vsakič, ko se kanalu pridruži nov uporabnik, poslal pozdravno sporočilo.
Zgornja slika prikazuje bota, ki pozdravlja novega uporabnika na kanalu.
Kar najbolje izkoristite svoj delovni prostor Slack
Boti Slack niso edini način za razširitev funkcionalnosti platforme za sporočanje Slack. Druga metoda je integracija orodij tretjih oseb s Slackom. Zagotavljajo dodatno funkcionalnost znotraj platforme.
Seznanite se s temi integracijami, saj bodo povečale vašo produktivnost v Slacku.