Creează acest bot slack și oferă canalului tău o atmosferă mai prietenoasă.

Întâmpinarea noilor utilizatori pe canalul tău îi face să se simtă ca acasă, dar urmărirea fiecărui utilizator care se alătură poate fi o sarcină obositoare. Aici intervine un bot de bun venit Slack. Botul trimite un mesaj de bun venit personalizat fiecărui utilizator nou al canalului. Este întotdeauna online, prin urmare nu vor exista mesaje de bun venit cu întârziere.

Veți învăța cum să configurați acreditările botului dvs., să ascultați evenimente în Slack și să trimiteți mesaje înapoi utilizatorilor.

Crearea unui bot Slack și obținerea jetonului său API

Creeaza o cont Slack sau conectați-vă la cel existent. Apoi creați un noul spațiu de lucru Slack pentru a-ți testa botul înainte de a-l instala în spațiul de lucru activ.

Conectați-vă în noul spațiu de lucru. Slack creează automat un canal aleator și general pentru tine.

Observați secțiunea Aplicație din stânga jos a spațiului de lucru. Aici va apărea botul nostru când îl creați. Navigați la Site-ul web Slack API.

Click pe Creați o aplicație. Creați aplicația De la zero în fereastra care apare.

Denumiți-vă aplicația și selectați spațiul de lucru în care doriți să o dezvoltați.

Apoi faceți clic pe Creați aplicație buton. Făcând clic, veți fi redirecționat către o pagină care conține informațiile de bază ale aplicației dvs. Luați notă de secretul de semnare de sub acreditările aplicației. Botul dvs. va folosi secretul de semnare pentru a verifica dacă un eveniment a venit de la Slack și nu a fost modificat în timpul transmiterii.

Accesați funcția OAuth și Permisiuni.

Sub OAuth & Permissions, navigați la Bot Token Scopes. Aici vei adăuga permisiunile a ceea ce botul tău poate face în spațiul tău de lucru. Adaugă utilizatori: citiți domeniul de aplicare. Acest domeniu va permite botului dvs. să vadă persoanele din spațiul dvs. de lucru. De asemenea, adăugați chat: scrie domeniu care va permite botului dvs. să trimită mesaje către spațiul de lucru.

Navigați înapoi la informațiile de bază ale botului dvs. și faceți clic Instalați în spațiul de lucru.

Faceți clic pe permiteți pe următoarea pagină care apare. Acum ați terminat de instalat botul în spațiul dvs. de lucru. Navigați la caracteristica OAuth și Permisiuni. Luați notă de tokenul OAuth utilizator bot pe care Slack îl generează după instalare. Botul va fi vizibil în secțiunea de aplicații a spațiului de lucru.

Acum ați instalat botul în spațiul dvs. de lucru, puteți scrie codul pentru a-l controla.

Pregătiți-vă mediul

Trebuie să fii familiarizat cu elementele de bază ale Python pentru a urma aceste exemple de cod.

Creați un nou mediu virtual si a .env fişier. Veți folosi fișierul .env pentru a stoca simbolul și secretul de semnare, pe care trebuie să le păstrați privat. Nu ar trebui să încărcați fișierul .env pe nicio platformă publică.

Rulați următoarea comandă într-un terminal pentru a instala bibliotecile necesare:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Biblioteca slack-sdk vă va oferi instrumente pentru construirea de aplicații și integrări Slack, inclusiv metode API, clienți API Web și OAuth. pathlib și dotenv vă vor ajuta să încărcați variabilele de mediu. flask vă va ajuta să gestionați cererile și răspunsurile HTTP. slackeventsapi vă va oferi un ascultător de evenimente care primește și gestionează evenimentele de la Slack.

Codul sursă complet este disponibil în a Depozitul GitHub.

Importarea bibliotecilor necesare

Creați un nou fișier Python și începeți prin a importa bibliotecile pe care le-ați instalat anterior, astfel încât să puteți utiliza funcționalitatea acestora în codul dvs.

import slack_sdk la fel de leneş
import os
din calea lib import cale
din dotenv import load_dotenv
din balon import Balon
din slackeventsapi import SlackEventAdapter

Modulul OS al lui Python vine cu limba, așa că nu trebuie să o instalați. SlackEventAdapter este o clasă din modulul slackeventsapi care gestionează evenimente din API-ul Slack.

Configurarea botului Slack

Creați două variabile în fișierul .env. Numiți unul SLACK_BOT_TOKEN și atribuiți-i Jetonul OAuth utilizator Bot. Numiți celălalt SLACK_SIGNING_SECRET și atribuiți-i secretul de semnare. Reveniți la fișierul Python și creați un obiect Flask. Apoi încărcați variabilele de mediu din fișierul .env folosind funcția load_dotenv din modulul dotenv.

aplicație = Balon (__nume__)
env_path = Cale('.') / „.env”
load_dotenv (dotenv_path=env_path)

Creați o instanță slack_event_adapter. Acesta va gestiona evenimentele din API-ul Slack, folosind variabila de mediu SLACK_SIGNING_SECRET pentru a autentifica cererile.

slack_event_adapter = SlackEventAdapter (os.environ[„SLACK_SIGNING_SECRET”],
„/slack/evenimente”, aplicație)

/slack/events este punctul final pe care API-ul Slack îl va folosi pentru a trimite evenimente.

Creați o instanță WebClient care va trimite mesaje către API-ul Slack. Efectuați un apel API pentru a prelua ID-ul botului.

client = slack. WebClient (token=os.environ[„SLACK_BOT_TOKEN”])
BOT_ID = client.api_call("auth.test")['ID-ul de utilizator']

Configurați mesajul pe care îl veți trimite noilor utilizatori care se alătură unui canal. Inițializați un set gol care va ține evidența utilizatorilor primiți.

GREETING_MESSAGE = „Bună ziua {user_name}, bine ați venit la {channel_name}” \
"canal! Suntem încântați să vă avem aici.”
welcomed_users = set()

Puteți personaliza salutul după bunul plac.

Crearea unei funcții pentru a gestiona evenimentul „Member Joined Channel”.

Configurați un ascultător de evenimente. Va asculta evenimentul member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Definiți o funcție pe care o veți apela atunci când un utilizator se alătură unui canal. Utilizați funcția pentru a extrage ID-ul utilizatorului și ID-ul canalului din datele evenimentului. Verificați dacă utilizatorul este nou pe canal. Dacă nu, obțineți informații despre utilizator și canal folosind clasa WebClient. Creați un mesaj de salut personalizat. Trimite salutul pe canal

defhandle_member_joined_channel(date_eveniment):
user_id = date_eveniment['eveniment']['utilizator']
channel_id = date_eveniment['eveniment']['canal']

# Trimiteți un mesaj de bun venit numai dacă utilizatorul este nou
dacă ID-ul de utilizator nuîn welcomed_users:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
user_name = user_info['utilizator']['Nume']

channel_info = client.conversations_info (canal=canal_id)
nume_canal = info_canal['canal']['Nume']

salut = GREETING_MESSAGE.format (nume_utilizator=nume_utilizator,
channel_name=nume_canal)

client.chat_postMessage (canal=canal_id, text=felicitare)

Event_data conține toate informațiile despre evenimentul în care un utilizator s-a alăturat unui canal.

Porniți aplicația Flask și rulați scriptul. Dacă rulați ca program principal (nu este importat ca modul), rulați în modul de depanare și ascultați pe portul 5000.

dacă __nume__ == "__principal__":
app.run (depanare=Adevărat, port=5000)

Modul de depanare reîncarcă automat aplicația atunci când modificați codul. Nu utilizați modul de depanare într-un mediu de producție, acesta poate expune informații sensibile și poate face aplicația vulnerabilă la atacuri. Rulați aplicația. Va rula ca server local pe portul 5000.

Conectarea logicii cu botul dvs

După ce ați creat logica, acum trebuie să vă conectați la botul din spațiul dvs. de lucru. Acest lucru îi va permite să utilizeze această logică pentru a efectua operațiuni în spațiul dvs. de lucru. Începeți prin descărcarea și rularea Ngrok. Ngrok vă va ajuta să vă expuneți serverul web local la internet.

După ce îl rulați, utilizați următoarea comandă pentru a mapa adresa serverului dvs. local la cea a lui Ngrok.

ngrok http 500

Copiați adresa Ngrok care se mapează la gazda locală.

Navigați la site-ul web Slack API. Sub Abonamente la evenimente caracteristică, activați evenimente. Sub Solicitare URL introduceți adresa Ngrok urmată de /slack/events. Aceasta va indica punctul dvs. final.

Apoi abonați-vă la evenimentul member_joined_channel. Acest lucru vă va notifica botul de fiecare dată când un utilizator se alătură unui canal. Click pe Salvează modificările. Slack va adăuga automat domeniile de care aveți nevoie pentru a vă abona la acest eveniment. De fiecare dată când modificați un domeniu, va trebui să reinstalați aplicația în spațiul de lucru.

Faceți clic pe reinstalați aplicația.

Testarea botului dvs

Accesați spațiul dvs. de lucru. Accesați canalul pe care doriți să utilizați botul. Trimiteți un mesaj direct botului. De exemplu @Welcoming Bot. Va apărea o solicitare de adăugare a botului la canal. Faceți clic pe adăugați.

Acum, de fiecare dată când un utilizator nou se alătură canalului, botul va trimite un mesaj de bun venit.

Imaginea de mai sus arată botul întâmpinând un nou utilizator pe canal.

Profitați la maximum de spațiul dvs. de lucru Slack

Boții Slack nu sunt singura modalitate de extindere a funcționalității platformei de mesagerie Slack. Cealaltă metodă este de a integra instrumente terțe cu Slack. Acestea oferă funcționalități suplimentare în cadrul platformei.

Familiarizați-vă cu aceste integrări, deoarece vă vor crește productivitatea în Slack.