Creëer deze slappe bot en geef je kanaal een vriendelijkere sfeer.
Door nieuwe gebruikers op je kanaal te verwelkomen, voelen ze zich thuis, maar het bijhouden van elke gebruiker die lid wordt, kan een vermoeiende taak zijn. Dat is waar een Slack-welkomstbot om de hoek komt kijken. De bot stuurt een persoonlijk welkomstbericht naar elke nieuwe kanaalgebruiker. Het is altijd online, dus er zullen geen late welkomstberichten zijn.
U leert hoe u de inloggegevens van uw bot instelt, luistert naar gebeurtenissen in Slack en berichten terugstuurt naar gebruikers.
Een Slack Bot maken en zijn API-token ophalen
Maak een Slappe rekening of log in op uw bestaande. Maak dan een nieuwe Slack-werkruimte om uw bot te testen voordat u deze in uw actieve werkruimte installeert.
Log in op uw nieuwe werkruimte. Slack maakt automatisch een willekeurig en algemeen kanaal voor je aan.
Let op het App-gedeelte linksonder in de werkruimte. Dit is waar onze bot zal verschijnen wanneer je hem aanmaakt. Navigeer naar de Slack API-website.
Klik op Maak een app. Maak de app Helemaal opnieuw in het venster dat verschijnt.
Geef uw app een naam en selecteer de werkruimte waarin u deze wilt ontwikkelen.
Klik dan op de App maken knop. Als u hierop klikt, wordt u omgeleid naar een pagina met de basisinformatie van uw app. Noteer het ondertekeningsgeheim onder de inloggegevens van de app. Uw bot gebruikt het ondertekeningsgeheim om te verifiëren dat een gebeurtenis afkomstig is van Slack en dat er tijdens de verzending niet mee is geknoeid.
Ga naar de functie OAuth & Toestemmingen.
Navigeer onder OAuth & machtigingen naar Bottokenbereiken. Hier voegt u de rechten toe van wat uw bot kan doen in uw werkruimte. Voeg de gebruikers: lezen domein. Met dit bereik kan uw bot de mensen in uw werkruimte zien. Voeg ook de chatten: schrijven bereik waarmee uw bot berichten naar de werkruimte kan sturen.
Navigeer terug naar de basisinformatie van uw bot en klik Installeer in Workspace.
Klik op toestaan op de volgende pagina die verschijnt. U bent nu klaar met het installeren van de bot in uw werkruimte. Navigeer naar de functie OAuth & machtigingen. Let op het OAuth-token voor de botgebruiker dat Slack na de installatie genereert. De bot is zichtbaar in het app-gedeelte van uw werkruimte.
Nu je de bot in je werkruimte hebt geïnstalleerd, kun je de code schrijven om hem te besturen.
Uw omgeving voorbereiden
Je moet bekend zijn met de basisprincipes van Python om deze codevoorbeelden te volgen.
Creëer een nieuwe virtuele omgeving en een .env bestand. U gebruikt het .env-bestand om uw token en ondertekeningsgeheim op te slaan, dat u privé moet houden. U mag het .env-bestand niet uploaden naar een openbaar platform.
Voer de volgende opdracht uit in een terminal om de vereiste bibliotheken te installeren:
pip install slack-sdk pathlib dotenv kolf slackeventsapi
De slack-sdk-bibliotheek biedt u tools voor het bouwen van Slack-apps en -integraties, waaronder API-methoden, Web API-clients en OAuth. pathlib en dotenv helpen u bij het laden van de omgevingsvariabelen. flask helpt u bij het afhandelen van de HTTP-verzoeken en -antwoorden. slackeventsapi biedt u een gebeurtenislistener die gebeurtenissen van Slack ontvangt en afhandelt.
De volledige broncode is beschikbaar in een GitHub-opslagplaats.
De vereiste bibliotheken importeren
Maak een nieuw Python-bestand en begin met het importeren van de bibliotheken die u eerder hebt geïnstalleerd, zodat u hun functionaliteit in uw code kunt gebruiken.
importeren slack_sdk als slap
importeren os
van padlib importeren Pad
van dotenv importeren load_dotenv
van kolf importeren Fles
van slackeventsapi importeren SlackEventAdapter
De os-module van Python wordt geleverd met de taal, dus u hoeft deze niet te installeren. SlackEventAdapter is een klasse van de module slackeventsapi die gebeurtenissen van de Slack API afhandelt.
De Slack Bot instellen
Maak twee variabelen in het .env-bestand. Noem één SLACK_BOT_TOKEN en wijs deze het OAuth-token van de botgebruiker toe. Noem de andere SLACK_SIGNING_SECRET en wijs deze het ondertekeningsgeheim toe. Ga terug naar het Python-bestand en maak een Flask-object. Laad vervolgens de omgevingsvariabelen uit het .env-bestand met behulp van de functie load_dotenv uit de dotenv-module.
app = Fles (__naam__)
env_pad = Pad('.') / '.env'
load_dotenv (dotenv_path=env_path)
Maak een instantie slack_event_adapter. Het verwerkt gebeurtenissen van de Slack API en gebruikt de SLACK_SIGNING_SECRET omgevingsvariabele om verzoeken te verifiëren.
slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/slack/gebeurtenissen', apps)
/slack/events is het eindpunt dat de Slack API zal gebruiken om gebeurtenissen te verzenden.
Maak een WebClient-instantie die berichten naar de Slack API stuurt. Voer een API-aanroep uit om de ID van de bot op te halen.
klant = slap. WebClient (token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['gebruikersnaam']
Stel het bericht in dat u naar de nieuwe gebruikers wilt sturen die lid worden van een kanaal. Initialiseer een lege set die de welkome gebruikers bijhoudt.
GREETING_MESSAGE = "Hallo {user_name}, welkom bij {channel_name} " \
"kanaal! We zijn verheugd dat je hier bent."
welcome_users = instellen()
U kunt de begroeting naar wens aanpassen.
Een functie maken om de gebeurtenis "Member Joined Channel" af te handelen
Stel een gebeurtenislistener in. Het luistert naar het evenement member_joined_channel.
@slack_event_adapter.on('member_joined_channel')
Definieer een functie die u aanroept wanneer een gebruiker lid wordt van een kanaal. Gebruik de functie om de gebruikers-ID en kanaal-ID uit de gebeurtenisgegevens te extraheren. Controleer of de gebruiker nieuw is op het kanaal. Als dit niet het geval is, haalt u de gebruikers- en kanaalinformatie op met behulp van de WebClient-klasse. Maak een persoonlijk begroetingsbericht. Stuur de begroeting naar het kanaal
defhandle_member_joined_channel(gebeurtenis_gegevens):
user_id = event_data['evenement']['gebruiker']
channel_id = event_data['evenement']['kanaal']# Stuur alleen een welkomstbericht als de gebruiker nieuw is
als gebruikersnaam nietin welkom_gebruikers:
welcome_users.add (user_id)user_info = client.users_info (user=user_id)
gebruikersnaam = gebruiker_info['gebruiker']['naam']channel_info = client.conversations_info (channel=channel_id)
kanaal_naam = kanaal_info['kanaal']['naam']begroeting = GREETING_MESSAGE.format (gebruikersnaam=gebruikersnaam,
kanaal_naam=kanaal_naam)
client.chat_postMessage (kanaal=kanaal_id, tekst=groet)
De event_data bevat alle informatie over het evenement waarin een gebruiker zich bij een kanaal heeft aangesloten.
Start de Flask-app en voer het script uit. Als het wordt uitgevoerd als het hoofdprogramma (niet geïmporteerd als een module), voer het dan uit in foutopsporingsmodus en luister op poort 5000.
als __naam__ == "__voornaamst__":
app.run (debug=WAAR, poort=5000)
De foutopsporingsmodus laadt de toepassing automatisch opnieuw wanneer u wijzigingen in de code aanbrengt. Gebruik de foutopsporingsmodus niet in een productieomgeving, dit kan gevoelige informatie blootleggen en uw applicatie kwetsbaar maken voor aanvallen. Voer uw app uit. Het zal draaien als een lokale server op poort 5000.
De logica verbinden met uw bot
Nadat u de logica hebt gemaakt, moet u nu verbinding maken met de bot in uw werkruimte. Hierdoor kan het deze logica gebruiken om bewerkingen in uw werkruimte uit te voeren. Begin met downloaden en uitvoeren Ngrok. Ngrok helpt u uw lokale webserver bloot te stellen aan internet.
Gebruik na het uitvoeren de volgende opdracht om het adres van uw lokale server toe te wijzen aan dat van Ngrok.
ngrok http 500
Kopieer het Ngrok-adres dat wordt toegewezen aan uw lokale host.
Navigeer naar de Slack API-website. Onder de Evenement abonnementen functie, gebeurtenissen inschakelen. Onder URL aanvragen voer het Ngrok-adres in, gevolgd door /slack/events. Dit wijst naar uw eindpunt.
Abonneer je dan op het member_joined_channel evenement. Dit zal uw bot op de hoogte stellen telkens wanneer een gebruiker lid wordt van een kanaal. Klik op Wijzigingen opslaan. Slack voegt automatisch de scopes toe die je nodig hebt om je op dit evenement te abonneren. Telkens wanneer u een bereik wijzigt, moet u uw app opnieuw installeren in de werkruimte.
Klik op uw app opnieuw installeren.
Uw bot testen
Ga naar je werkruimte. Ga naar het kanaal waarop je de bot wilt gebruiken. Stuur een direct bericht naar de bot. Bijvoorbeeld @Welcoming Bot. Er verschijnt een prompt om de bot aan het kanaal toe te voegen. Klik op toevoegen.
Elke keer dat een nieuwe gebruiker lid wordt van het kanaal, stuurt de bot nu een welkomstbericht.
De afbeelding hierboven laat zien hoe de bot een nieuwe gebruiker verwelkomt op het kanaal.
Haal het meeste uit uw slappe werkruimte
Slack-bots zijn niet de enige manier om de functionaliteit van het Slack-berichtenplatform uit te breiden. De andere methode is om tools van derden te integreren met Slack. Ze zorgen voor extra functionaliteit binnen het platform.
Maak uzelf vertrouwd met deze integraties, want ze zullen uw productiviteit in Slack verhogen.