Crea questo bot lento e dai al tuo canale un'atmosfera più amichevole.
Accogliere nuovi utenti sul tuo canale li fa sentire a casa, ma tenere traccia di ogni utente che si unisce può essere un compito faticoso. È qui che entra in gioco un bot di benvenuto Slack. Il bot invia un messaggio di benvenuto personalizzato a ogni nuovo utente del canale. È sempre online, quindi non ci saranno messaggi di benvenuto in ritardo.
Imparerai come configurare le credenziali del tuo bot, ascoltare gli eventi in Slack e inviare messaggi agli utenti.
Creazione di un bot Slack e recupero del relativo token API
Creare un Conto lento o accedi a quello esistente. Poi crea un nuova area di lavoro Slack per testare il bot prima di installarlo nell'area di lavoro attiva.
Accedi al tuo nuovo spazio di lavoro. Slack crea automaticamente un canale casuale e generico per te.
Notare la sezione App in basso a sinistra nell'area di lavoro. Qui è dove apparirà il nostro bot quando lo crei. Naviga verso il Sito web dell'API Slack.
Clicca su Crea un'app. Crea l'app Da zero nella finestra che appare.
Assegna un nome alla tua app e seleziona l'area di lavoro in cui desideri svilupparla.
Quindi fare clic sul Crea app pulsante. Facendo clic verrai reindirizzato a una pagina contenente le informazioni di base della tua app. Prendi nota del segreto di firma sotto le credenziali dell'app. Il tuo bot utilizzerà il segreto di firma per verificare che un evento provenga da Slack e non sia stato manomesso durante la trasmissione.
Vai alla funzione OAuth e permessi.
In OAuth e autorizzazioni, vai a Bot Token Scopes. Qui è dove aggiungerai le autorizzazioni di ciò che il tuo bot può fare nel tuo spazio di lavoro. Aggiungi il utenti: leggere scopo. Questo ambito consentirà al tuo bot di visualizzare le persone nel tuo spazio di lavoro. Inoltre, aggiungi il chiacchierare: scrivere ambito che consentirà al tuo bot di inviare messaggi all'area di lavoro.
Torna alle informazioni di base del tuo bot e fai clic Installa nell'area di lavoro.
Fare clic su Consenti nella pagina successiva visualizzata. Ora hai finito di installare il bot nel tuo spazio di lavoro. Passare alla funzione OAuth e autorizzazioni. Prendi nota del Bot User OAuth Token che Slack genera dopo l'installazione. Il bot sarà visibile nella sezione app del tuo spazio di lavoro.
Ora che hai installato il bot nel tuo spazio di lavoro, puoi scrivere il codice per controllarlo.
Preparare il tuo ambiente
Devi avere familiarità con il basi di Python per seguire questi esempi di codice.
Crea un nuovo ambiente virtuale e un .env file. Utilizzerai il file .env per archiviare il token e il segreto di firma, che devi mantenere privati. Non dovresti caricare il file .env su nessuna piattaforma pubblica.
Eseguire il seguente comando in un terminale per installare le librerie richieste:
pip installa slack-sdk pathlib dotenv flask slackeventsapi
La libreria slack-sdk ti fornirà gli strumenti per la creazione di app e integrazioni Slack, inclusi metodi API, client API Web e OAuth. pathlib e dotenv ti aiuteranno a caricare le variabili d'ambiente. flask ti aiuterà a gestire le richieste e le risposte HTTP. slackeventsapi ti fornirà un ascoltatore di eventi che riceve e gestisce gli eventi da Slack.
Il codice sorgente completo è disponibile in a Deposito GitHub.
Importazione delle librerie richieste
Crea un nuovo file Python e inizia importando le librerie che hai installato in precedenza, in modo da poter utilizzare le loro funzionalità nel tuo codice.
importare slack_sdk COME lento
importare os
da pathlib importare Sentiero
da dotenv importare load_dotenv
da borraccia importare Borraccia
da slackeventsapi importare SlackEventAdapter
Modulo operativo di Python viene fornito con la lingua, quindi non è necessario installarlo. SlackEventAdapter è una classe del modulo slackeventsapi che gestisce gli eventi dall'API Slack.
Configurazione del robot Slack
Crea due variabili nel file .env. Assegna un nome a uno SLACK_BOT_TOKEN e assegnagli il token OAuth dell'utente bot. Denominare l'altro SLACK_SIGNING_SECRET e assegnargli il segreto di firma. Torna al file Python e crea un oggetto Flask. Quindi caricare le variabili di ambiente dal file .env utilizzando la funzione load_dotenv dal modulo dotenv.
app = Boccetta (__name__)
env_path = Percorso('.') / '.env'
load_dotenv (dotenv_path=env_path)
Crea un'istanza slack_event_adapter. Gestirà gli eventi dall'API Slack, utilizzando la variabile di ambiente SLACK_SIGNING_SECRET per autenticare le richieste.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/eventi', applicazione)
/slack/events è l'endpoint che l'API Slack utilizzerà per inviare eventi.
Crea un'istanza WebClient che invierà messaggi all'API Slack. Effettua una chiamata API per recuperare l'ID del bot.
cliente = allentamento. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['ID utente']
Imposta il messaggio che invierai ai nuovi utenti che si uniscono a un canale. Inizializza un set vuoto che terrà traccia degli utenti accolti.
MESSAGGIO_SALUTO = "Ciao {user_name}, benvenuto in {channel_name} " \
"canale! Siamo entusiasti di averti qui".
welcome_users = set()
Puoi personalizzare il saluto a tuo piacimento.
Creazione di una funzione per gestire l'evento "Member Joined Channel".
Imposta un listener di eventi. Ascolterà l'evento member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Definisci una funzione che chiamerai quando un utente entra in un canale. Utilizzare la funzione per estrarre l'ID utente e l'ID canale dai dati dell'evento. Controlla se l'utente è nuovo nel canale. In caso contrario, ottenere le informazioni sull'utente e sul canale utilizzando la classe WebClient. Crea un messaggio di saluto personalizzato. Invia il saluto al canale
defhandle_member_joined_channel(dati_evento):
user_id = dati_evento['evento']['utente']
channel_id = dati_evento['evento']['canale']# Invia un messaggio di benvenuto solo se l'utente è nuovo
Se ID utente nonIn welcome_users:
welcome_users.add (user_id)user_info = client.users_info (user=user_id)
nome_utente = info_utente['utente']['nome']channel_info = client.conversations_info (channel=channel_id)
nome_canale = info_canale['canale']['nome']saluto = MESSAGGIO_SALUTO.format (user_name=user_name,
nome_canale=nome_canale)
client.chat_postMessage (canale=id_canale, testo=saluto)
event_data contiene tutte le informazioni sull'evento in cui un utente si è unito a un canale.
Avvia l'app Flask ed esegui lo script. Se eseguito come programma principale (non importato come modulo), eseguito in modalità debug e in ascolto sulla porta 5000.
Se __nome__ == "__principale__":
app.run (debug=VERO, porta=5000)
La modalità di debug ricarica automaticamente l'applicazione quando si apportano modifiche al codice. Non utilizzare la modalità di debug in un ambiente di produzione, può esporre informazioni riservate e rendere l'applicazione vulnerabile agli attacchi. Esegui la tua app. Funzionerà come server locale sulla porta 5000.
Connessione della logica con il tuo bot
Dopo aver creato la logica, ora devi connetterti al bot nel tuo spazio di lavoro. Ciò consentirà di utilizzare questa logica per eseguire operazioni nell'area di lavoro. Inizia scaricando ed eseguendo Ngrok. Ngrok ti aiuterà a esporre il tuo server web locale a Internet.
Dopo averlo eseguito, usa il seguente comando per mappare l'indirizzo del tuo server locale a quello di Ngrok.
ngrok http 500
Copia l'indirizzo Ngrok associato al tuo host locale.
Passare al sito web dell'API Slack. Sotto il Abbonamenti agli eventi funzionalità, abilitare gli eventi. Sotto Richiedi l'URL inserire l'indirizzo Ngrok seguito da /slack/events. Questo indicherà il tuo endpoint.
Quindi iscriviti all'evento member_joined_channel. Questo avviserà il tuo bot ogni volta che un utente si unisce a un canale. Clicca su Salvare le modifiche. Slack aggiungerà automaticamente gli ambiti necessari per iscriversi a questo evento. Ogni volta che modifichi un ambito, dovrai reinstallare la tua app nell'area di lavoro.
Fai clic su reinstalla la tua app.
Test del tuo bot
Vai al tuo spazio di lavoro. Vai al canale in cui desideri utilizzare il bot. Invia un messaggio diretto al bot. Ad esempio @Welcoming Bot. Apparirà una richiesta per aggiungere il bot al canale. Fare clic su aggiungi.
Ora, ogni volta che un nuovo utente si unisce al canale, il bot invierà un messaggio di benvenuto.
L'immagine sopra mostra il bot che accoglie un nuovo utente nel canale.
Ottieni il massimo dal tuo spazio di lavoro lento
I bot Slack non sono l'unico modo per estendere le funzionalità della piattaforma di messaggistica Slack. L'altro metodo consiste nell'integrare strumenti di terze parti con Slack. Forniscono funzionalità aggiuntive all'interno della piattaforma.
Acquisisci familiarità con queste integrazioni in quanto aumenteranno la tua produttività in Slack.