Hozd létre ezt a laza robotot, és tedd barátságosabb hangulatot csatornádnak.
Ha új felhasználókat üdvözölsz a csatornádon, otthon érzik magukat, de minden egyes csatlakozó felhasználó nyomon követése fárasztó feladat lehet. Itt jön be a Slack üdvözlő botja. A bot személyre szabott üdvözlő üzenetet küld a csatorna minden új felhasználójának. Mindig online, így nem lesznek késői üdvözlő üzenetek.
Megtanulja, hogyan állíthatja be a robot hitelesítő adatait, hogyan hallgathatja meg az eseményeket a Slackben, és hogyan küldhet vissza üzeneteket a felhasználóknak.
Slack Bot létrehozása és API-token beszerzése
Hozzon létre egy Laza fiók vagy jelentkezzen be a meglévőbe. Ezután hozzon létre a új Slack munkaterület hogy tesztelje a botját, mielőtt telepíti az aktív munkaterületre.
Jelentkezzen be új munkaterületére. A Slack automatikusan létrehoz egy véletlenszerű és általános csatornát.
Figyelje meg az Alkalmazás részt a munkaterület bal alsó sarkában. Itt jelenik meg a robotunk, amikor létrehozza. Navigáljon a Slack API webhely.
Kattintson Hozzon létre egy alkalmazást. Hozd létre az alkalmazást A semmiből a megjelenő ablakban.
Nevezze el az alkalmazást, és válassza ki azt a munkaterületet, amelyen fejleszteni szeretné.
Ezután kattintson a Alkalmazás létrehozása gomb. A kattintással átirányít egy oldalra, amely az alkalmazás alapvető adatait tartalmazza. Vegye figyelembe az aláírási titkot az alkalmazás hitelesítő adatai alatt. A robot az aláírási titkot fogja használni annak ellenőrzésére, hogy egy esemény a Slacktől származik-e, és nem manipulálták-e az átvitel során.
Nyissa meg az OAuth és engedélyek funkciót.
Az OAuth és engedélyek alatt lépjen a Bot Token Scopes részre. Itt adhatja meg a robot által a munkaterületen végzett műveletekre vonatkozó engedélyeket. Add hozzá a felhasználók: olvassa el hatálya. Ez a hatókör lehetővé teszi a robot számára, hogy megtekintse a munkaterületen lévő személyeket. Ezenkívül add hozzá a chat: írj hatókör, amely lehetővé teszi, hogy a bot üzeneteket küldjön a munkaterületre.
Lépjen vissza a robot alapvető információihoz, és kattintson a gombra Telepítés a munkaterületre.
Kattintson az engedélyezésre a következő megjelenő oldalon. Ezzel befejezte a bot telepítését a munkaterületre. Keresse meg az OAuth és engedélyek funkciót. Vegye figyelembe a Bot User OAuth Tokent, amelyet a Slack generál a telepítés után. A robot látható lesz a munkaterület alkalmazásrészében.
Most telepítette a robotot a munkaterületére, és megírhatja a kódot a vezérléséhez.
A környezet előkészítése
Ismernie kell a Python alapjai követni ezeket a kódmintákat.
Hozzon létre egy új virtuális környezetet és a .env fájlt. Az .env fájlt fogja használni a token és az aláírási titok tárolására, amelyet meg kell őriznie. Ne töltse fel az .env fájlt semmilyen nyilvános platformra.
Futtassa a következő parancsot egy terminálon a szükséges könyvtárak telepítéséhez:
pip install slack-sdk pathlib dotenv flask slackeventsapi
A slack-sdk könyvtár eszközöket biztosít a Slack alkalmazások és integrációk létrehozásához, beleértve az API-metódusokat, a webes API-klienseket és az OAuth-t. A pathlib és a dotenv segít a környezeti változók betöltésében. flask segít kezelni a HTTP kéréseket és válaszokat. A slackeventsapi eseményfigyelőt biztosít, amely fogadja és kezeli a Slack eseményeit.
A teljes forráskód elérhető a GitHub adattár.
A szükséges könyvtárak importálása
Hozzon létre egy új Python-fájlt, és kezdje a korábban telepített könyvtárak importálásával, hogy azok funkcióit felhasználhassa a kódban.
import slack_sdk mint laza
import os
tól től pathlib import Pálya
tól től dotenv import load_dotenv
tól től lombik import Lombik
tól től slackeventsapi import SlackEventAdapter
Python operációs rendszer modulja a nyelvhez tartozik, így nem kell telepítenie. A SlackEventAdapter egy osztály a slackeventsapi modulból, amely a Slack API-ból származó eseményeket kezeli.
A Slack Bot beállítása
Hozzon létre két változót az .env fájlban. Nevezzen el egy SLACK_BOT_TOKEN-t, és rendelje hozzá a Bot User OAuth-tokenjét. Nevezze el a másikat SLACK_SIGNING_SECRET, és rendelje hozzá az aláírási titkot. Menjen vissza a Python fájlhoz, és hozzon létre egy Flask objektumot. Ezután töltse be a környezeti változókat az .env fájlból a dotenv modul load_dotenv függvényével.
app = Lombik (__name__)
env_path = Elérési út('.') / ".env"
load_dotenv (dotenv_path=env_path)
Hozzon létre egy slack_event_adapter példányt. A Slack API-ból származó eseményeket kezeli, a SLACK_SIGNING_SECRET környezeti változó segítségével hitelesíti a kéréseket.
slack_event_adapter = SlackEventAdapter (os.environ["SLACK_SIGNING_SECRET"],
"/slack/events", alkalmazás)
A /slack/events az a végpont, amelyet a Slack API az események küldésére fog használni.
Hozzon létre egy WebClient példányt, amely üzeneteket küld a Slack API-nak. Indítson API-hívást a bot azonosítójának lekéréséhez.
kliens = laza. WebClient (token=os.environ["SLACK_BOT_TOKEN"])
BOT_ID = client.api_call("auth.test")['Felhasználói azonosító']
Állítsa be az üzenetet, amelyet a csatornához csatlakozó új felhasználóknak küld. Inicializáljon egy üres készletet, amely nyomon követi az üdvözlő felhasználókat.
GREETING_MESSAGE = "Kedves {user_name}, üdvözöljük a {channel_name}" \
"csatorna! Örülünk, hogy itt lehetsz."
welcomed_users = set()
Az üdvözlő szöveget saját ízlése szerint alakíthatja.
Funkció létrehozása a „Tag csatlakozott a csatornához” esemény kezelésére
Állítson be eseményfigyelőt. Meghallgatja a member_joined_channel eseményt.
@slack_event_adapter.on('member_joined_channel')
Határozzon meg egy függvényt, amelyet akkor hív meg, amikor egy felhasználó csatlakozik egy csatornához. A funkció segítségével kinyerheti a felhasználói azonosítót és a csatornaazonosítót az eseményadatokból. Ellenőrizze, hogy a felhasználó új-e a csatornán. Ha nem, szerezze be a felhasználói és csatornainformációkat a WebClient osztály segítségével. Hozzon létre egy személyre szabott üdvözlő üzenetet. Üdvözlet küldése a csatornának
defhand_member_joined_channel(esemény_adata):
user_id = esemény_adat['esemény']["felhasználó"]
csatorna_azonosító = esemény_adat['esemény']['csatorna']# Csak akkor küldjön üdvözlő üzenetet, ha a felhasználó új
ha Felhasználói azonosító nemban ben welcomed_users:
welcomed_users.add (felhasználói_azonosító)user_info = client.users_info (user=user_id)
user_name = user_info["felhasználó"]['név']csatorna_információ = client.conversations_info (channel=channel_id)
csatorna_név = csatorna_információ['csatorna']['név']greeting = GREETING_MESSAGE.format (felhasználónév=felhasználónév,
csatorna_neve=csatorna_neve)
client.chat_postMessage (channel=channel_id, text=greeting)
Az event_data tartalmazza az összes információt arról az eseményről, amelyben a felhasználó csatlakozott egy csatornához.
Indítsa el a Flask alkalmazást, és futtassa a szkriptet. Ha fő programként fut (nem modulként importálva), futtassa hibakeresési módban, és figyeljen az 5000-es porton.
ha __név__ == "__fő__":
app.run (debug=Igaz, port=5000)
A hibakeresési mód automatikusan újratölti az alkalmazást, amikor módosítja a kódot. Ne használjon hibakeresési módot éles környezetben, mert ez bizalmas információkat tehet közzé, és sebezhetővé teheti az alkalmazást a támadásokkal szemben. Futtassa az alkalmazást. Helyi szerverként fog futni az 5000-es porton.
A logika összekapcsolása a robottal
A logika létrehozása után csatlakoznia kell a munkaterületen lévő robothoz. Ez lehetővé teszi, hogy ezt a logikát használja műveletek végrehajtására a munkaterületen. Kezdje a letöltéssel és futtatással Ngrok. Az Ngrok segít abban, hogy a helyi webszervert hozzáférjen az internethez.
A futtatás után használja a következő parancsot a helyi kiszolgáló címének leképezéséhez az Ngrok címére.
ngrok http 500
Másolja ki az Ngrok-címet, amely hozzá van rendelve a helyi gazdagéphez.
Keresse meg a Slack API webhelyet. Alatt Esemény előfizetések funkció, események engedélyezése. Alatt URL kérése írja be az Ngrok címet, majd írja be /slack/events. Ez a végpontjára fog mutatni.
Ezután iratkozzon fel a member_joined_channel eseményre. Ez minden alkalommal értesíti a robotot, amikor egy felhasználó csatlakozik egy csatornához. Kattintson Változtatások mentése. A Slack automatikusan hozzáadja az eseményre való feliratkozáshoz szükséges hatóköröket. Minden alkalommal, amikor módosít egy hatókört, újra kell telepítenie az alkalmazást a munkaterületen.
Kattintson az alkalmazás újratelepítése lehetőségre.
A robot tesztelése
Menjen a munkaterületére. Lépjen arra a csatornára, amelyen használni szeretné a botot. Közvetlen üzenet küldése a botnak. Például @Welcoming Bot. Megjelenik egy felszólítás, hogy adjuk hozzá a botot a csatornához. Kattintson a Hozzáadás gombra.
Mostantól minden alkalommal, amikor egy új felhasználó csatlakozik a csatornához, a bot üdvözlő üzenetet küld.
A fenti képen a bot új felhasználót köszönt a csatornán.
Hozza ki a legtöbbet laza munkaterületéből
A Slack botok nem az egyetlen módja a Slack üzenetküldő platform funkcionalitásának bővítésének. A másik módszer a harmadik féltől származó eszközök integrálása a Slackkal. További funkciókat biztosítanak a platformon belül.
Ismerkedjen meg ezekkel az integrációkkal, mivel ezek növelik a Slack termelékenységét.