Looge see lõtv bot ja muutke oma kanalile sõbralikum õhkkond.
Uute kasutajate tervitamine oma kanalile paneb nad end koduselt tundma, kuid iga liituva kasutaja jälgimine võib olla tüütu ülesanne. Siin tuleb sisse Slacki tervitusbot. Bot saadab igale uuele kanali kasutajale isikupärastatud tervitussõnumi. See on alati võrgus, seega pole hilinenud tervitussõnumeid.
Saate teada, kuidas seadistada oma roboti mandaate, kuulata sündmusi Slackis ja saata kasutajatele tagasi sõnumeid.
Slack Boti loomine ja selle API märgi hankimine
Loo Lõõgastav konto või logige sisse oma olemasolevasse. Seejärel looge a uus Slacki tööruum et testida oma robotit enne selle installimist oma aktiivsesse tööruumi.
Logige sisse oma uude tööruumi. Slack loob teie jaoks automaatselt juhusliku ja üldise kanali.
Märkige tööala vasakus alanurgas jaotist Rakendus. See on koht, kus meie robot ilmub selle loomisel. Navigeerige lehele Slacki API veebisait.
Kliki Looge rakendus. Looge rakendus Algusest ilmuvas aknas.
Nimetage oma rakendus ja valige tööruum, milles soovite seda arendada.
Seejärel klõpsake nuppu Loo rakendus nuppu. Klõpsates suunatakse teid lehele, mis sisaldab teie rakenduse põhiteavet. Pange tähele allkirjastamise saladust rakenduse mandaatide all. Teie bot kasutab allkirjastamise saladust, et kontrollida, kas sündmus tuli Slackist ja seda ei muudetud edastamise ajal.
Avage funktsioon OAuth ja load.
Liikuge jaotises OAuth ja load jaotisesse Bot Token Scopes. Siin saate lisada load, mida teie robot teie tööruumis teha saab. Lisage kasutajad: loe ulatus. See ulatus võimaldab teie robotil vaadata inimesi teie tööruumis. Samuti lisage vestlus: kirjuta ulatus, mis võimaldab teie robotil tööruumi sõnumeid saata.
Liikuge tagasi oma roboti põhiteabe juurde ja klõpsake nuppu Installige tööruumi.
Klõpsake järgmisel ilmuval lehel käsul Luba. Olete nüüd roboti oma tööruumi installimise lõpetanud. Navigeerige funktsiooni OAuth ja load. Võtke teadmiseks Boti kasutaja OAuth Token, mille Slack pärast installimist loob. Robot on nähtav teie tööruumi rakenduste jaotises.
Nüüd olete roboti oma tööruumi installinud ja saate selle juhtimiseks koodi kirjutada.
Teie keskkonna ettevalmistamine
Peate olema kursis Pythoni põhitõed järgida neid koodinäidiseid.
Looge uus virtuaalne keskkond ja a .env faili. Kasutate .env-faili oma loa ja allkirjasaladuse salvestamiseks, mida peate privaatsena hoidma. Te ei tohiks .env-faili üles laadida ühelegi avalikule platvormile.
Nõutavate teekide installimiseks käivitage terminalis järgmine käsk:
pip install slack-sdk pathlib dotenv flask slackeventsapi
Slack-sdk teek pakub teile tööriistu Slacki rakenduste ja integratsioonide loomiseks, sealhulgas API meetodid, Web API kliendid ja OAuth. pathlib ja dotenv aitavad teil keskkonnamuutujaid laadida. kolb aitab teil HTTP-päringuid ja vastuseid käsitleda. slackeventsapi pakub teile sündmuste kuulajat, mis võtab vastu ja haldab Slacki sündmusi.
Täielik lähtekood on saadaval a GitHubi hoidla.
Nõutavate teekide importimine
Looge uus Pythoni fail ja alustage varem installitud teekide importimisega, et saaksite nende funktsioone oma koodis kasutada.
importida slack_sdk nagu lõtv
importida os
alates pathlib importida Tee
alates dotenv importida load_dotenv
alates kolb importida Kolb
alates slackeventsapi importida SlackEventAdapter
Pythoni operatsioonisüsteemi moodul keelega kaasas, nii et te ei pea seda installima. SlackEventAdapter on klass slackeventsapi moodulist, mis käsitleb sündmusi Slacki API-st.
Slack Boti seadistamine
Looge .env-failis kaks muutujat. Nimetage üks SLACK_BOT_TOKEN ja määrake sellele Boti kasutaja OAuthi luba. Andke teisele nimeks SLACK_SIGNING_SECRET ja määrake sellele allkirjastamise saladus. Minge tagasi Pythoni faili ja looge Flask objekt. Seejärel laadige keskkonnamuutujad .env-failist, kasutades dotenv-mooduli funktsiooni load_dotenv.
rakendus = Kolb (__name__)
env_path = Path('.') / ".env"
load_dotenv (dotenv_path=env_path)
Looge eksemplar slack_event_adapter. See käsitleb sündmusi Slacki API-st, kasutades taotluste autentimiseks keskkonnamuutujat SLACK_SIGNING_SECRET.
slack_event_adapter = SlackEventAdapter (os.environ["SLACK_SIGNING_SECRET"],
'/slack/events', rakendus)
/slack/events on lõpp-punkt, mida Slacki API kasutab sündmuste saatmiseks.
Looge WebClienti eksemplar, mis saadab sõnumeid Slacki API-le. Tehke API-kõne, et hankida roboti ID.
klient = loid. Veebiklient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['kasutaja ID']
Seadistage sõnum, mille saadate kanaliga liituvatele uutele kasutajatele. Initsialiseerige tühi komplekt, mis jälgib teretulnud kasutajaid.
TERVITUSSÕNUM = "Tere, {user_name}, tere tulemast kanalile {channel_name}" \
"kanal! Meil on hea meel, et olete siin."
teretulnud_kasutajad = set()
Saate tervitust oma maitse järgi kohandada.
Funktsiooni loomine sündmuse „Liige liitus kanaliga” haldamiseks
Seadistage sündmuste kuulaja. See kuulab sündmust Member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Määrake funktsioon, mille kutsute välja, kui kasutaja kanaliga liitub. Kasutage funktsiooni kasutaja ID ja kanali ID eraldamiseks sündmuse andmetest. Kontrollige, kas kasutaja on kanalil uus. Kui ei, hankige kasutaja ja kanali teave klassi WebClient abil. Looge isikupärastatud tervitussõnum. Saada tervitus kanalile
defhand_member_joined_channel(sündmuse_andmed):
kasutaja_id = sündmuse_andmed['üritus']['kasutaja']
kanali_id = sündmuse_andmed['üritus']['kanal']# Saada tervitussõnum ainult siis, kui kasutaja on uus
kui kasutaja ID mittesisse welcomed_users:
welcomed_users.add (kasutaja_id)kasutaja_info = klient.kasutajate_info (kasutaja=kasutaja_id)
kasutajanimi = kasutaja_teave['kasutaja']['nimi']kanali_info = klient.vestluste_info (channel=channel_id)
kanali_nimi = kanali_info['kanal']['nimi']tervitus = TERVITUSE_SÕNUM.formaat (kasutaja_nimi=kasutaja_nimi,
kanali_nimi=kanali_nimi)
client.chat_postMessage (channel=channel_id, text=tereting)
Event_data sisaldab kogu teavet sündmuse kohta, mille käigus kasutaja on kanaliga liitunud.
Käivitage rakendus Flask ja käivitage skript. Kui käivitate põhiprogrammina (ei impordita moodulina), käivitage silumisrežiimis ja kuulake pordil 5000.
kui __nimi__ == "__main__":
app.run (debug=Tõsi, port=5000)
Silumisrežiim laadib rakenduse automaatselt uuesti, kui muudate koodi. Ärge kasutage silumisrežiimi tootmiskeskkonnas, see võib paljastada tundlikku teavet ja muuta teie rakenduse rünnakute suhtes haavatavaks. Käivitage oma rakendus. See töötab kohaliku serverina pordis 5000.
Loogika ühendamine robotiga
Pärast loogika loomist peate nüüd oma tööruumis oleva robotiga ühenduse looma. See võimaldab sellel loogikat kasutada teie tööruumis toimingute tegemiseks. Alustage allalaadimisest ja käivitamisest Ngrok. Ngrok aitab teil avada kohaliku veebiserveri Internetiga.
Pärast selle käivitamist kasutage järgmist käsku, et vastendada oma kohaliku serveri aadress Ngroki omaga.
ngrok http 500
Kopeerige Ngroki aadress, mis vastab teie kohalikule hostile.
Liikuge Slacki API veebisaidile. all Ürituste tellimused funktsiooni, lubage sündmused. Under Taotlege URL-i sisestage Ngroki aadress ja seejärel /slack/events. See osutab teie lõpp-punktile.
Seejärel tellige sündmus Member_joined_channel. See teavitab teie robotit iga kord, kui kasutaja kanaliga liitub. Kliki Salvesta muudatused. Slack lisab automaatselt selle sündmuse tellimiseks vajalikud ulatused. Iga kord, kui muudate ulatust, peate oma rakenduse tööruumi uuesti installima.
Klõpsake oma rakenduse uuesti installimist.
Oma roboti testimine
Minge oma tööruumi. Minge kanalile, kus soovite robotit kasutada. Saatke robotile otsesõnum. Näiteks @Welcoming Bot. Ilmub teade roboti kanalile lisamiseks. Klõpsake lisa.
Nüüd saadab bot iga kord, kui kanaliga liitub uus kasutaja, tervitussõnumi.
Ülaltoodud pildil on näha, kuidas robot tervitab kanalile uut kasutajat.
Kasutage oma lõdvast tööruumist maksimumi
Slacki robotid ei ole ainus viis Slacki sõnumsideplatvormi funktsionaalsuse laiendamiseks. Teine meetod on kolmanda osapoole tööriistade integreerimine Slackiga. Need pakuvad platvormil lisafunktsioone.
Tutvuge nende integratsioonidega, kuna need suurendavad teie tootlikkust Slackis.