Opret denne slappe bot og giv din kanal en venligere stemning.

At byde nye brugere velkommen til din kanal får dem til at føle sig hjemme, men det kan være en trættende opgave at holde styr på hver enkelt bruger, der tilmelder sig. Det er her en Slack-velkomstbot kommer ind. Botten sender en personlig velkomstbesked til hver ny kanalbruger. Den er altid online, så der kommer ingen sene velkomstbeskeder.

Du lærer, hvordan du opsætter din bots legitimationsoplysninger, lytter til begivenheder i Slack og sender beskeder tilbage til brugerne.

Oprettelse af en slack bot og få dens API-token

Lave en Slap konto eller log ind på din eksisterende. Opret derefter en nyt Slack-arbejdsområde for at teste din bot, før du installerer den i dit aktive arbejdsområde.

Log ind på dit nye arbejdsområde. Slack opretter automatisk en tilfældig og generel kanal til dig.

Bemærk app-sektionen nederst til venstre i arbejdsområdet. Det er her, vores bot vises, når du opretter den. Naviger til Slack API hjemmeside.

Klik på Opret en app. Opret appen Fra starten i vinduet, der kommer frem.

Navngiv din app, og vælg det arbejdsområde, du vil udvikle den i.

Klik derefter på Opret app knap. Hvis du klikker, omdirigeres du til en side, der indeholder de grundlæggende oplysninger om din app. Bemærk underskriftshemmeligheden under app-legitimationsoplysningerne. Din bot vil bruge signeringshemmeligheden til at bekræfte, at en begivenhed kom fra Slack og ikke blev manipuleret med under transmissionen.

Gå til OAuth & Permissions-funktionen.

Under OAuth og tilladelser skal du navigere til Bot Token Scopes. Det er her, du vil tilføje tilladelserne til, hvad din bot kan gøre i dit arbejdsområde. Tilføj brugere: læs omfang. Dette omfang giver din bot mulighed for at se personerne i dit arbejdsområde. Tilføj også chat: skriv omfang, som giver din bot mulighed for at sende beskeder til arbejdsområdet.

Naviger tilbage til din bots grundlæggende oplysninger, og klik Installer til Workspace.

Klik på tillad på den næste side, der vises. Du er nu færdig med at installere botten på dit arbejdsområde. Naviger til funktionen OAuth & Permissions. Bemærk Bot User OAuth Token, som Slack genererer efter installationen. Botten vil være synlig i app-sektionen på dit arbejdsområde.

Nu du har installeret botten på dit arbejdsområde, kan du skrive koden for at styre den.

Forbered dit miljø

Du skal være bekendt med det grundlæggende i Python at følge disse kodeeksempler.

Opret et nyt virtuelt miljø og en .env fil. Du skal bruge .env-filen til at gemme dit token og din signeringshemmelighed, som du skal holde privat. Du bør ikke uploade .env-filen til nogen offentlig platform.

Kør følgende kommando i en terminal for at installere de nødvendige biblioteker:

pip installer slack-sdk pathlib dotenv flask slackeventsapi

Slack-sdk-biblioteket vil give dig værktøjer til at bygge Slack-apps og integrationer, herunder API-metoder, Web API-klienter og OAuth. pathlib og dotenv vil hjælpe dig med at indlæse miljøvariablerne. flask hjælper dig med at håndtere HTTP-anmodninger og svar. slackeventsapi vil give dig en begivenhedslytter, der modtager og håndterer begivenheder fra Slack.

Den fulde kildekode er tilgængelig i en GitHub-depot.

Import af de nødvendige biblioteker

Opret en ny Python-fil, og start med at importere de biblioteker, du tidligere har installeret, så du kan bruge deres funktionalitet i din kode.

importere slack_sdk som slap
importere os
fra stilib importere Sti
fra dotenv importere load_dotenv
fra kolbe importere Kolbe
fra slackeventsapi importere SlackEventAdapter

Pythons OS-modul leveres med sproget, så du behøver ikke installere det. SlackEventAdapter er en klasse fra slackeventsapi-modulet, der håndterer hændelser fra Slack API.

Opsætning af Slack Bot

Opret to variabler i .env-filen. Navngiv én SLACK_BOT_TOKEN og tildel den Bot User OAuth Token. Navngiv den anden SLACK_SIGNING_SECRET og tildel den signeringshemmeligheden. Gå tilbage til Python-filen og opret et Flask-objekt. Indlæs derefter miljøvariablerne fra .env-filen ved hjælp af load_dotenv-funktionen fra dotenv-modulet.

app = Kolbe (__navn__)
env_sti = Sti('.') / '.env'
load_dotenv (dotenv_path=env_path)

Opret en slack_event_adapter-instans. Det vil håndtere hændelser fra Slack API'et ved at bruge miljøvariablen SLACK_SIGNING_SECRET til at godkende anmodninger.

slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/events', app)

/slack/events er slutpunktet, som Slack API'en vil bruge til at sende hændelser.

Opret en WebClient-instans, der sender beskeder til Slack API. Foretag et API-kald for at hente botens ID.

klient = slæk. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['bruger ID']

Konfigurer den besked, du vil sende til de nye brugere, der tilmelder sig en kanal. Initialiser et tomt sæt, der vil holde styr på de velkomne brugere.

GREETING_MESSAGE = "Hej {user_name}, velkommen til {channel_name} " \
"kanal! Vi er glade for at have dig her."
welcomed_users = sæt()

Du kan tilpasse hilsenen til din smag.

Oprettelse af en funktion til at håndtere begivenheden "Medlem tilsluttet kanal".

Konfigurer en begivenhedslytter. Det vil lytte til member_joined_channel-begivenheden.

@slack_event_adapter.on('member_joined_channel')

Definer en funktion, som du vil kalde, når en bruger tilslutter sig en kanal. Brug funktionen til at udtrække bruger-id'et og kanal-id'et fra hændelsesdataene. Tjek, om brugeren er ny på kanalen. Hvis ikke, få bruger- og kanaloplysningerne ved hjælp af WebClient-klassen. Opret en personlig hilsen. Send hilsenen til kanalen

defhandle_member_joined_channel(hændelsesdata):
bruger_id = hændelsesdata['begivenhed']['bruger']
kanal_id = hændelsesdata['begivenhed']['kanal']

# Send kun en velkomstbesked, hvis brugeren er ny
hvis bruger ID ikkei velkomne_brugere:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
brugernavn = brugeroplysninger['bruger']['navn']

channel_info = client.conversations_info (channel=channel_id)
kanalnavn = kanalinfo['kanal']['navn']

hilsen = GREETING_MESSAGE.format (brugernavn=brugernavn,
kanalnavn=kanalnavn)

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

Event_data indeholder alle oplysninger om begivenheden, hvor en bruger har tilsluttet sig en kanal.

Start Flask-appen og kør scriptet. Hvis det køres som hovedprogram (ikke importeret som et modul), skal du køre i fejlretningstilstand og lytte på port 5000.

hvis __navn__ == "__main__":
app.run (debug=Rigtigt, port=5000)

Fejlfindingstilstanden genindlæser automatisk programmet, når du foretager ændringer i koden. Brug ikke fejlretningstilstand i et produktionsmiljø, det kan afsløre følsomme oplysninger og gøre din applikation sårbar over for angreb. Kør din app. Den kører som en lokal server på port 5000.

Forbindelse af logikken med din bot

Efter at have oprettet logikken, skal du nu oprette forbindelse til botten i dit arbejdsområde. Dette vil gøre det muligt for den at bruge denne logik til at udføre operationer i dit arbejdsområde. Start med at downloade og køre Ngrok. Ngrok hjælper dig med at udsætte din lokale webserver for internettet.

Når du har kørt det, skal du bruge følgende kommando til at tilknytte adressen på din lokale server til adressen på Ngrok.

ngrok http 500

Kopiér Ngrok-adressen, der er knyttet til din lokale vært.

Naviger til Slack API-webstedet. Under Event abonnementer funktion, aktivere begivenheder. Under Anmod om URL indtast Ngrok-adressen efterfulgt af /slack/events. Dette vil pege på dit endepunkt.

Så abonner på member_joined_channel-begivenheden. Dette vil give din bot besked, hver gang en bruger tilmelder sig en kanal. Klik på Gem ændringer. Slack tilføjer automatisk de scopes, du skal bruge for at abonnere på denne begivenhed. Hver gang du ændrer et omfang, skal du geninstallere din app i arbejdsområdet.

Klik på geninstaller din app.

Test af din bot

Gå til dit arbejdsområde. Gå til den kanal, du vil bruge botten på. Send en direkte besked til botten. For eksempel @Welcoming Bot. En prompt om at tilføje botten til kanalen vil dukke op. Klik på Tilføj.

Nu, hver gang en ny bruger tilmelder sig kanalen, vil botten sende en velkomstbesked.

Billedet ovenfor viser bot, der byder en ny bruger velkommen til kanalen.

Få mest muligt ud af dit slappe arbejdsområde

Slack-bots er ikke den eneste måde at udvide funktionaliteten af ​​Slack-meddelelsesplatformen på. Den anden metode er at integrere tredjepartsværktøjer med Slack. De giver yderligere funktionalitet inden for platformen.

Gør dig bekendt med disse integrationer, da de vil øge din produktivitet i Slack.