Skapa den här slaka boten och ge din kanal en vänligare atmosfär.

Att välkomna nya användare till din kanal får dem att känna sig hemma, men att hålla reda på varje användare som går med kan vara en tröttsam uppgift. Det är där en Slack välkomnande bot kommer in. Boten skickar ett personligt välkomstmeddelande till varje ny kanalanvändare. Det är alltid online så det kommer inga sena välkomstmeddelanden.

Du kommer att lära dig hur du ställer in din bots autentiseringsuppgifter, lyssnar på händelser i Slack och skickar meddelanden tillbaka till användare.

Skapa en Slack Bot och få dess API-token

Skapa en Svagt konto eller logga in på din befintliga. Skapa sedan en ny Slack arbetsyta för att testa din bot innan du installerar den i din aktiva arbetsyta.

Logga in på din nya arbetsyta. Slack skapar automatiskt en slumpmässig och allmän kanal åt dig.

Lägg märke till appavsnittet längst ner till vänster på arbetsytan. Det är här vår bot kommer att visas när du skapar den. Navigera till Slack API-webbplats.

instagram viewer

Klicka på Skapa en app. Skapa appen Från början i fönstret som visas.

Namnge din app och välj den arbetsyta du vill utveckla den i.

Klicka sedan på Skapa app knapp. Om du klickar omdirigeras du till en sida som innehåller grundläggande information om din app. Notera signeringshemligheten under appens autentiseringsuppgifter. Din bot kommer att använda signeringshemligheten för att verifiera att en händelse kom från Slack och inte manipulerades under överföringen.

Gå till funktionen OAuth och behörigheter.

Under OAuth och behörigheter, navigera till Bot Token Scopes. Det är här du kommer att lägga till behörigheter för vad din bot kan göra i din arbetsyta. Lägg till användare: läs omfattning. Detta omfång gör att din bot kan se personerna i din arbetsyta. Lägg också till chatt: skriv scope som gör att din bot kan skicka meddelanden till arbetsytan.

Navigera tillbaka till din bots grundläggande information och klicka Installera till Workspace.

Klicka på tillåt på nästa sida som visas. Du är nu klar med att installera boten på din arbetsyta. Navigera till funktionen OAuth och behörigheter. Notera Bot User OAuth Token som Slack genererar efter installationen. Boten kommer att vara synlig i appdelen av din arbetsyta.

Nu har du installerat boten på din arbetsyta, du kan skriva koden för att styra den.

Förbered din miljö

Du måste vara bekant med grunderna i Python att följa dessa kodexempel.

Skapa en ny virtuell miljö och a .env fil. Du kommer att använda .env-filen för att lagra din token och din signeringshemlighet, som du måste hålla privat. Du bör inte ladda upp .env-filen till någon offentlig plattform.

Kör följande kommando i en terminal för att installera de nödvändiga biblioteken:

pip installera slack-sdk pathlib dotenv flask slackeventsapi

slack-sdk-biblioteket kommer att förse dig med verktyg för att bygga Slack-appar och integrationer, inklusive API-metoder, webb-API-klienter och OAuth. pathlib och dotenv hjälper dig att ladda miljövariablerna. flask hjälper dig att hantera HTTP-förfrågningar och svar. slackeventsapi kommer att förse dig med en händelseavlyssnare som tar emot och hanterar händelser från Slack.

Den fullständiga källkoden finns tillgänglig i en GitHub-förråd.

Importera de obligatoriska biblioteken

Skapa en ny Python-fil och börja med att importera de bibliotek du tidigare installerat, så att du kan använda deras funktionalitet i din kod.

importera slack_sdk som slak
importera os
från pathlib importera Väg
från dotenv importera load_dotenv
från flaska importera Flaska
från slackeventsapi importera SlackEventAdapter

Pythons OS-modul kommer med språket, så du behöver inte installera det. SlackEventAdapter är en klass från slackeventsapi-modulen som hanterar händelser från Slack API.

Konfigurera Slack Bot

Skapa två variabler i .env-filen. Namnge en SLACK_BOT_TOKEN och tilldela den Bot User OAuth Token. Namnge den andra SLACK_SIGNING_SECRET och tilldela den signeringshemligheten. Gå tillbaka till Python-filen och skapa ett Flask-objekt. Ladda sedan miljövariablerna från .env-filen med hjälp av load_dotenv-funktionen från dotenv-modulen.

app = Kolv (__namn__)
env_path = Sökväg('.') / '.env'
load_dotenv (dotenv_path=env_path)

Skapa en slack_event_adapter-instans. Den kommer att hantera händelser från Slack API, med hjälp av miljövariabeln SLACK_SIGNING_SECRET för att autentisera förfrågningar.

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

/slack/events är slutpunkten som Slack API kommer att använda för att skicka händelser.

Skapa en WebClient-instans som skickar meddelanden till Slack API. Gör ett API-anrop för att hämta botens ID.

klient = slapp. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['användar ID']

Ställ in meddelandet du ska skicka till de nya användarna som går med i en kanal. Initiera en tom uppsättning som kommer att hålla reda på de välkomnade användarna.

GREETING_MESSAGE = "Hej {user_name}, välkommen till {channel_name}" \
"kanal! Vi är glada över att ha dig här."
welcomed_users = set()

Du kan anpassa hälsningen efter eget tycke.

Skapa en funktion för att hantera händelsen "Member Joined Channel".

Konfigurera en händelseavlyssnare. Den kommer att lyssna på eventet member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Definiera en funktion som du ska anropa när en användare går med i en kanal. Använd funktionen för att extrahera användar-ID och kanal-ID från händelsedata. Kontrollera om användaren är ny på kanalen. Om inte, hämta användar- och kanalinformation med klassen WebClient. Skapa ett personligt hälsningsmeddelande. Skicka hälsningen till kanalen

defhandle_member_joined_channel(event_data):
user_id = händelse_data['händelse']['användare']
kanal_id = händelse_data['händelse']['kanal']

# Skicka bara ett välkomstmeddelande om användaren är ny
om användar ID intei välkomnade_användare:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
användarnamn = användarinformation['användare']['namn']

channel_info = client.conversations_info (channel=channel_id)
kanalnamn = kanalinformation['kanal']['namn']

hälsning = GREETING_MESSAGE.format (användarnamn=användarnamn,
kanalnamn=kanalnamn)

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

Event_data innehåller all information om händelsen där en användare har gått med i en kanal.

Starta Flask-appen och kör skriptet. Om körs som huvudprogram (ej importerat som en modul), kör i felsökningsläge och lyssna på port 5000.

om __namn__ == "__huvud__":
app.run (debug=Sann, port=5000)

Felsökningsläget laddar automatiskt om programmet när du gör ändringar i koden. Använd inte felsökningsläge i en produktionsmiljö, det kan avslöja känslig information och göra din applikation sårbar för attacker. Kör din app. Den kommer att köras som en lokal server på port 5000.

Anslut logiken med din bot

Efter att ha skapat logiken måste du nu ansluta till boten i din arbetsyta. Detta gör det möjligt för den att använda denna logik för att utföra operationer i din arbetsyta. Börja med att ladda ner och köra Ngrok. Ngrok hjälper dig att exponera din lokala webbserver för internet.

När du har kört det, använd följande kommando för att mappa adressen till din lokala server till den för Ngrok.

ngrok http 500

Kopiera Ngrok-adressen som mappas till din lokala värd.

Navigera till Slack API-webbplatsen. Under Eventprenumerationer funktion, aktivera händelser. Under Begär URL ange Ngrok-adressen följt av /slack/events. Detta kommer att peka på din slutpunkt.

Prenumerera sedan på eventet member_joined_channel. Detta kommer att meddela din bot varje gång en användare går med i en kanal. Klicka på Spara ändringar. Slack lägger automatiskt till de omfång du behöver för att prenumerera på detta evenemang. Varje gång du ändrar ett omfång måste du installera om din app i arbetsytan.

Klicka på installera om din app.

Testar din bot

Gå till din arbetsyta. Gå till den kanal du vill använda boten. Skicka ett direktmeddelande till boten. Till exempel @Welcoming Bot. En uppmaning att lägga till boten till kanalen kommer att dyka upp. Klicka på lägg till.

Nu, varje gång en ny användare går med i kanalen kommer boten att skicka ett välkomstmeddelande.

Bilden ovan visar boten som välkomnar en ny användare till kanalen.

Få ut det mesta av din slappa arbetsyta

Slack bots är inte det enda sättet att utöka funktionaliteten hos Slack meddelandeplattform. Den andra metoden är att integrera tredjepartsverktyg med Slack. De ger ytterligare funktionalitet inom plattformen.

Bekanta dig med dessa integrationer eftersom de kommer att öka din produktivitet i Slack.