Sukurkite šį laisvą robotą ir suteikite kanalui draugiškesnę atmosferą.

Priėmę naujus naudotojus kanale jie jaučiasi kaip namie, tačiau sekti kiekvieną prisijungusį naudotoją gali būti varginanti užduotis. Čia atsiranda „Slack“ pasisveikinimo robotas. Botas siunčia asmeninį pasveikinimo pranešimą kiekvienam naujam kanalo vartotojui. Jis visada yra prisijungęs, todėl vėlyvų sveikinimo pranešimų nebus.

Sužinosite, kaip nustatyti savo roboto kredencialus, klausytis įvykių „Slack“ ir siųsti pranešimus vartotojams.

„Slack Bot“ sukūrimas ir jo API prieigos rakto gavimas

Sukurti Slack sąskaita arba prisijunkite prie esamo. Tada sukurkite a nauja Slack darbo vieta Norėdami išbandyti savo robotą prieš įdiegdami jį į aktyvią darbo sritį.

Prisijunkite prie naujos darbo vietos. „Slack“ automatiškai sukuria jums atsitiktinį ir bendrą kanalą.

Atkreipkite dėmesį į programos skyrių apatiniame kairiajame darbo srities kampe. Čia bus rodomas mūsų robotas, kai jį sukursite. Eikite į Slack API svetainė.

Spustelėkite Sukurkite programą. Sukurkite programą Nuo nulio pasirodžiusiame lange.

instagram viewer

Pavadinkite programą ir pasirinkite darbo sritį, kurioje norite ją kurti.

Tada spustelėkite Sukurti programą mygtuką. Spustelėjus būsite nukreipti į puslapį, kuriame yra pagrindinė programos informacija. Atkreipkite dėmesį į pasirašymo paslaptį, esančią programos kredencialuose. Jūsų robotas naudos pasirašymo paslaptį, kad patikrintų, ar įvykis kilo iš „Slack“ ir nebuvo sugadintas perdavimo metu.

Eikite į „OAuth“ ir leidimų funkciją.

Skiltyje „OAuth“ ir leidimai eikite į „Bot Token Scopes“. Čia pridėsite leidimus, ką jūsų robotas gali daryti jūsų darbo srityje. Pridėkite vartotojai: skaitykite apimtis. Ši apimtis leis jūsų robotui peržiūrėti žmones jūsų darbo vietoje. Taip pat pridėkite pokalbis: rašyk apimtis, kuri leis jūsų robotui siųsti pranešimus į darbo sritį.

Grįžkite į pagrindinę roboto informaciją ir spustelėkite Įdiegti į darbo sritį.

Kitame pasirodžiusiame puslapyje spustelėkite leisti. Dabar baigėte įdiegti robotą savo darbo vietoje. Eikite į „OAuth“ ir leidimų funkciją. Atkreipkite dėmesį į „Bot User OAuth Token“, kurį „Slack“ sugeneruoja įdiegus. Botas bus matomas jūsų darbo srities programų skiltyje.

Dabar, kai įdiegėte robotą savo darbo vietoje, galite parašyti kodą, kad jį valdytumėte.

Aplinkos paruošimas

Jūs turite būti susipažinę su Python pagrindai vadovautis šiais kodo pavyzdžiais.

Sukurkite naują virtualią aplinką ir a .env failą. Naudosite .env failą, kad išsaugotumėte prieigos raktą ir pasirašymo paslaptį, kurią turite išlaikyti privačią. Neturėtumėte įkelti .env failo į jokią viešą platformą.

Norėdami įdiegti reikiamas bibliotekas, terminale paleiskite šią komandą:

pip įdiegti slack-sdk pathlib dotenv flask slackeventsapi

„Slack-sdk“ biblioteka suteiks jums įrankius, skirtus „Slack“ programoms kurti ir integruoti, įskaitant API metodus, žiniatinklio API klientus ir „OAuth“. pathlib ir dotenv padės įkelti aplinkos kintamuosius. kolba padės tvarkyti HTTP užklausas ir atsakymus. slackeventsapi suteiks jums įvykių klausytoją, kuris priima ir tvarko įvykius iš Slack.

Visą šaltinio kodą rasite a GitHub saugykla.

Reikalingų bibliotekų importavimas

Sukurkite naują Python failą ir pradėkite importuodami anksčiau įdiegtas bibliotekas, kad galėtumėte naudoti jų funkcijas savo kode.

importuoti slack_sdk kaip tingus
importuoti os
pathlib importuoti Kelias
dotenv importuoti load_dotenv
kolba importuoti Kolba
slackeventsapi importuoti SlackEventAdapter

Python OS modulis yra su kalba, todėl jums nereikia jos įdiegti. SlackEventAdapter yra klasė iš slackeventsapi modulio, kuri tvarko įvykius iš Slack API.

„Slack Bot“ nustatymas

Sukurkite du kintamuosius .env faile. Pavadinkite vieną SLACK_BOT_TOKEN ir priskirkite jam roboto naudotojo OAuth prieigos raktą. Kitą pavadinkite SLACK_SIGNING_SECRET ir priskirkite pasirašymo paslaptį. Grįžkite į Python failą ir sukurkite Flask objektą. Tada įkelkite aplinkos kintamuosius iš .env failo naudodami funkciją load_dotenv iš dotenv modulio.

programa = Kolba (__name__)
env_path = Kelias('.') / „.env“
load_dotenv (dotenv_path=env_path)

Sukurkite slack_event_adapter egzempliorių. Jis apdoros įvykius iš Slack API, naudodamas aplinkos kintamąjį SLACK_SIGNING_SECRET užklausoms autentifikuoti.

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

/slack/events yra galutinis taškas, kurį Slack API naudos įvykiams siųsti.

Sukurkite WebClient egzempliorių, kuris siųs pranešimus į Slack API. Skambinkite API, kad gautumėte roboto ID.

klientas = palaidas. WebClient (token=os.environ[„SLACK_BOT_TOKEN“])
BOT_ID = client.api_call("auth.test")['Vartotojo ID']

Nustatykite pranešimą, kurį išsiųsite naujiems naudotojams, kurie prisijungia prie kanalo. Inicijuokite tuščią rinkinį, kuris stebės pasveikintus vartotojus.

GREETING_MESSAGE = „Sveiki, {user_name}, sveiki atvykę į {channel_name}“ \
"kanalas! Džiaugiamės, kad esate čia“.
sveikintini_vartotojai = set()

Galite pritaikyti sveikinimą pagal savo skonį.

Funkcijos, skirtos įvykiui „Narys prisijungė prie kanalo“, tvarkymas

Nustatykite įvykių klausytoją. Ji klausys narys_joined_channel įvykio.

@slack_event_adapter.on('member_joined_channel')

Apibrėžkite funkciją, kurią iškviesite, kai vartotojas prisijungs prie kanalo. Naudokite šią funkciją, kad iš įvykio duomenų išskirtumėte vartotojo ID ir kanalo ID. Patikrinkite, ar vartotojas nėra naujas kanale. Jei ne, gaukite informaciją apie vartotoją ir kanalą naudodami WebClient klasę. Sukurkite asmeninį sveikinimo pranešimą. Nusiųskite sveikinimą kanalui

defhand_member_joined_channel(įvykio_duomenys):
vartotojo_id = įvykio_duomenys["įvykis"]['Vartotojas']
kanalo_id = įvykio_duomenys["įvykis"]['kanalas']

# Siųskite sveikinimo pranešimą tik tuo atveju, jei vartotojas yra naujas
jeigu Vartotojo ID nein welcomed_users:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
vartotojo_vardas = vartotojo_informacija['Vartotojas']['vardas']

kanalo_informacija = client.conversations_info (channel=channel_id)
kanalo_pavadinimas = kanalo_informacija['kanalas']['vardas']

sveikinimas = GREETING_MESSAGE.format (naudotojo_vardas=naudotojo_vardas,
kanalo_pavadinimas = kanalo_pavadinimas)

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

Event_data yra visa informacija apie įvykį, per kurį vartotojas prisijungė prie kanalo.

Paleiskite programą „Flask“ ir paleiskite scenarijų. Jei paleidžiama kaip pagrindinė programa (neimportuota kaip modulis), paleiskite derinimo režimą ir klausykite 5000 prievado.

jeigu __vardas__ == "__pagrindinis__":
app.run (debug=Tiesa, prievadas=5000)

Derinimo režimas automatiškai iš naujo įkelia programą, kai keičiate kodą. Nenaudokite derinimo režimo gamybinėje aplinkoje, nes tai gali atskleisti neskelbtiną informaciją ir padaryti jūsų programą pažeidžiamą atakų. Paleiskite programą. Jis veiks kaip vietinis serveris 5000 prievade.

Logikos sujungimas su savo robotu

Sukūrę logiką, dabar turite prisijungti prie roboto savo darbo vietoje. Tai leis jai naudoti šią logiką, kad atliktų operacijas jūsų darbo srityje. Pradėkite atsisiųsdami ir paleisdami Ngrok. Ngrok padės jums atskleisti vietinį žiniatinklio serverį internetui.

Paleidę, naudokite šią komandą, kad susietumėte vietinio serverio adresą su Ngrok adresu.

ngrok http 500

Nukopijuokite Ngrok adresą, susijusį su vietiniu pagrindiniu kompiuteriu.

Eikite į Slack API svetainę. Pagal Renginių prenumerata funkcija, įgalinti įvykius. Pagal Prašyti URL įveskite Ngrok adresą ir tada /slack/events. Tai nurodys jūsų galinį tašką.

Tada užsiprenumeruokite įvykį narys_joined_channel. Tai įspės jūsų robotą kiekvieną kartą, kai vartotojas prisijungs prie kanalo. Spustelėkite Išsaugoti pakeitimus. „Slack“ automatiškai pridės sritis, kurių reikia norint užsiprenumeruoti šį įvykį. Kiekvieną kartą, kai pakeisite taikymo sritį, turėsite iš naujo įdiegti programą darbo srityje.

Spustelėkite iš naujo įdiegti programą.

Testuojame savo robotą

Eikite į savo darbo vietą. Eikite į kanalą, kuriame norite naudoti robotą. Nusiųskite tiesioginį pranešimą robotui. Pavyzdžiui, @Welcoming Bot. Pasirodys raginimas pridėti robotą prie kanalo. Spustelėkite pridėti.

Dabar kiekvieną kartą, kai prie kanalo prisijungia naujas vartotojas, robotas išsiųs sveikinimo pranešimą.

Aukščiau esančiame paveikslėlyje parodyta, kad robotas sveikina naują vartotoją kanale.

Išnaudokite visas laisvos darbo vietos galimybes

„Slack“ robotai nėra vienintelis būdas išplėsti „Slack“ pranešimų platformos funkcionalumą. Kitas būdas yra integruoti trečiųjų šalių įrankius su „Slack“. Jie suteikia papildomų funkcijų platformoje.

Susipažinkite su šiomis integracijomis, nes jos padidins jūsų „Slack“ produktyvumą.