Napravite ovog slack bota i dajte svom kanalu prijateljskiju atmosferu.
Poželjeti dobrodošlicu novim korisnicima na svoj kanal čini ih da se osjećaju kao kod kuće, ali praćenje svakog korisnika koji se pridruži može biti naporan zadatak. Tu dolazi Slack bot za dobrodošlicu. Bot šalje personaliziranu poruku dobrodošlice svakom novom korisniku kanala. Uvijek je online pa neće biti kasnih poruka dobrodošlice.
Naučit ćete kako postaviti vjerodajnice svog bota, slušati događaje u Slacku i slati poruke natrag korisnicima.
Stvaranje Slack bota i dobivanje njegovog API tokena
Stvoriti Slab račun ili se prijavite na postojeći. Zatim stvorite a novi Slack radni prostor za testiranje vašeg bota prije nego što ga instalirate u svoj aktivni radni prostor.
Prijavite se u svoj novi radni prostor. Slack automatski stvara nasumični i opći kanal za vas.
Obratite pozornost na odjeljak App u donjem lijevom kutu radnog prostora. Ovdje će se pojaviti naš bot kada ga izradite. Idite do Slack API web stranica.
Kliknite na Napravite aplikaciju. Izradite aplikaciju Od nule u prozoru koji se pojavi.
Imenujte svoju aplikaciju i odaberite radni prostor u kojem je želite razvijati.
Zatim kliknite na Izradi aplikaciju dugme. Klikom ćete se preusmjeriti na stranicu koja sadrži osnovne informacije o vašoj aplikaciji. Zabilježite tajnu potpisivanja ispod vjerodajnica aplikacije. Vaš će bot upotrijebiti tajnu potpisivanja kako bi potvrdio da je događaj došao sa Slacka i da nije bio mijenjan tijekom prijenosa.
Idite na značajku OAuth & Permissions.
U odjeljku OAuth & Permissions idite na Opseg tokena bota. Ovo je mjesto gdje ćete dodati dozvole za ono što vaš bot može raditi u vašem radnom prostoru. Dodajte korisnici: čitajte djelokrug. Ovaj opseg omogućit će vašem botu da vidi osobe u vašem radnom prostoru. Također, dodajte chat: pisati opseg koji će vašem botu omogućiti slanje poruka u radni prostor.
Vratite se do osnovnih informacija o svom robotu i kliknite Instaliraj u Workspace.
Kliknite dopusti na sljedećoj stranici koja se pojavi. Sada ste gotovi s instaliranjem bota u svoj radni prostor. Dođite do značajke OAuth & Permissions. Obratite pažnju na Bot User OAuth Token koji Slack generira nakon instalacije. Bot će biti vidljiv u odjeljku aplikacije vašeg radnog prostora.
Sada kada ste instalirali bota u svoj radni prostor, možete napisati kod za kontrolu.
Priprema vaše okoline
Morate biti upoznati s osnove Pythona slijediti ove uzorke koda.
Stvorite novo virtualno okruženje i a .env datoteka. Datoteku .env ćete koristiti za pohranu vašeg tokena i tajne potpisivanja, koju morate čuvati privatnom. Ne biste trebali postavljati .env datoteku ni na jednu javnu platformu.
Pokrenite sljedeću naredbu u terminalu da biste instalirali potrebne biblioteke:
pip instalirati slack-sdk pathlib dotenv flask slackeventsapi
Biblioteka slack-sdk pružit će vam alate za izgradnju Slack aplikacija i integracija, uključujući API metode, Web API klijente i OAuth. pathlib i dotenv pomoći će vam da učitate varijable okoline. flask će vam pomoći pri obradi HTTP zahtjeva i odgovora. slackeventsapi će vam pružiti slušatelja događaja koji prima i obrađuje događaje iz Slacka.
Puni izvorni kod dostupan je u a GitHub spremište.
Uvoz potrebnih biblioteka
Stvorite novu Python datoteku i započnite s uvozom biblioteka koje ste prethodno instalirali, tako da možete koristiti njihovu funkcionalnost u svom kodu.
uvoz slack_sdk kao zatišje
uvoz os
iz pathlib uvoz Staza
iz dotenv uvoz load_dotenv
iz pljoska uvoz Boca
iz slackeventsapi uvoz SlackEventAdapter
Pythonov os modul dolazi s jezikom, tako da ga ne morate instalirati. SlackEventAdapter je klasa iz slackeventsapi modula koja rukuje događajima iz Slack API-ja.
Postavljanje Slack Bota
Stvorite dvije varijable u .env datoteci. Nazovite jedan SLACK_BOT_TOKEN i dodijelite mu Bot User OAuth Token. Drugi nazovite SLACK_SIGNING_SECRET i dodijelite mu tajnu potpisivanja. Vratite se na Python datoteku i kreirajte Flask objekt. Zatim učitajte varijable okruženja iz .env datoteke pomoću funkcije load_dotenv iz modula dotenv.
aplikacija = Flask (__ime__)
env_path = Put('.') / '.env'
load_dotenv (dotenv_path=env_path)
Stvorite instancu slack_event_adapter. Obrađivat će događaje iz Slack API-ja, koristeći varijablu okruženja SLACK_SIGNING_SECRET za provjeru autentičnosti zahtjeva.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/events', aplikacija)
/slack/events je krajnja točka koju će Slack API koristiti za slanje događaja.
Napravite instancu WebClient koja će slati poruke Slack API-ju. Upućivanje API poziva za dohvaćanje ID-a bota.
klijent = zapuštenost. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['user_id']
Postavite poruku koju ćete slati novim korisnicima koji se pridruže kanalu. Inicijalizirajte prazan skup koji će pratiti dobrodošle korisnike.
POZDRAV_PORUKA = "Zdravo {user_name}, dobro došli na {channel_name} " \
"kanal! Uzbuđeni smo što ste ovdje."
dobrodošli_korisnici = set()
Čestitku možete prilagoditi svojim željama.
Stvaranje funkcije za rukovanje događajem "Member Joined Channel".
Postavite slušatelja događaja. Slušat će događaj member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Definirajte funkciju koju ćete pozvati kada se korisnik pridruži kanalu. Koristite ovu funkciju za izdvajanje korisničkog ID-a i ID-a kanala iz podataka događaja. Provjerite je li korisnik novi na kanalu. Ako nije, dohvatite informacije o korisniku i kanalu pomoću klase WebClient. Napravite personaliziranu pozdravnu poruku. Pošaljite pozdrav kanalu
defrukovati_članom_pridruženim_kanalom(event_data):
user_id = event_data['događaj']['korisnik']
channel_id = event_data['događaj']['kanal']# Pošaljite poruku dobrodošlice samo ako je korisnik nov
ako user_id neu dobrodošli_korisnici:
welcomed_users.add (user_id)user_info = client.users_info (user=user_id)
korisničko_ime = korisničke_info['korisnik']['Ime']channel_info = client.conversations_info (channel=channel_id)
naziv_kanala = info_kanala['kanal']['Ime']pozdrav = GREETING_MESSAGE.format (korisničko_ime=korisničko_ime,
kanal_naziv=naziv_kanala)
client.chat_postMessage (channel=channel_id, text=greeting)
Event_data sadrži sve informacije o događaju u kojem se korisnik pridružio kanalu.
Pokrenite aplikaciju Flask i pokrenite skriptu. Ako se izvodi kao glavni program (nije uvezen kao modul), izvodi se u načinu rada za otklanjanje pogrešaka i sluša na portu 5000.
ako __ime__ == "__glavni__":
app.run (debug=Pravi, port=5000)
Način otklanjanja pogrešaka automatski ponovno učitava aplikaciju kada napravite promjene u kodu. Nemojte koristiti način otklanjanja pogrešaka u produkcijskom okruženju, može izložiti osjetljive podatke i vašu aplikaciju učiniti ranjivom na napade. Pokrenite svoju aplikaciju. Radit će kao lokalni poslužitelj na portu 5000.
Povezivanje logike s vašim botom
Nakon što ste izradili logiku, sada se trebate povezati s botom u svom radnom prostoru. To će mu omogućiti korištenje ove logike za izvođenje operacija u vašem radnom prostoru. Započnite preuzimanjem i pokretanjem Ngrok. Ngrok će vam pomoći izložiti vaš lokalni web poslužitelj internetu.
Nakon što ga pokrenete, upotrijebite sljedeću naredbu za mapiranje adrese vašeg lokalnog poslužitelja s onom Ngrok-a.
ngrok http 500
Kopirajte Ngrok adresu koja se preslikava na vaš lokalni host.
Idite na web stranicu Slack API. Ispod Pretplate na događaje značajka, omogući događaje. Pod, ispod URL zahtjeva unesite Ngrok adresu nakon koje slijedi /slack/events. Ovo će ukazati na vašu krajnju točku.
Zatim se pretplatite na događaj member_joined_channel. Ovo će obavijestiti vašeg bota svaki put kada se korisnik pridruži kanalu. Kliknite na Spremi promjene. Slack će automatski dodati opsege koji su vam potrebni da se pretplatite na ovaj događaj. Svaki put kada promijenite opseg, morat ćete ponovno instalirati svoju aplikaciju u radnom prostoru.
Kliknite na ponovno instaliranje aplikacije.
Testiranje vašeg bota
Idite u svoj radni prostor. Idite na kanal za koji želite koristiti bota. Pošaljite izravnu poruku botu. Na primjer @Welcoming Bot. Pojavit će se upit za dodavanje bota na kanal. Pritisnite dodaj.
Sada, svaki put kada se novi korisnik pridruži kanalu, bot će poslati poruku dobrodošlice.
Gornja slika prikazuje bota koji želi dobrodošlicu novom korisniku na kanal.
Maksimalno iskoristite svoj Slack Workspace
Slack botovi nisu jedini način proširenja funkcionalnosti Slack platforme za razmjenu poruka. Druga metoda je integracija alata treće strane sa Slackom. Oni pružaju dodatnu funkcionalnost unutar platforme.
Upoznajte se s ovim integracijama jer će povećati vašu produktivnost u Slacku.