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.

instagram viewer

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.