Slack is een handige en populaire tool die je kunt uitbreiden met je eigen commando's, afgestemd op jouw organisatie.
Slack is een tool waarmee teams kunnen communiceren en samenwerken. Een van de belangrijkste kenmerken is het gebruik van slash-opdrachten. Deze commando's activeren specifieke acties of integraties binnen het platform.
Hoewel Slack u verschillende ingebouwde schuine streep-commando's biedt, kunt u aangepaste commando's maken met de API van Slack. U kunt vervolgens de aangepaste opdracht configureren om een bepaalde taak uit te voeren wanneer een gebruiker deze activeert.
Waarom een aangepast Slash-commando maken in Slack?
De ingebouwde slash-opdrachten van Slack voldoen mogelijk niet aan de specifieke behoeften van uw team of organisatie. Door aangepaste slash-opdrachten te maken, kunt u een persoonlijkere ervaring voor uw team creëren. Dit vergroot op zijn beurt de betrokkenheid van het team.
Een Slack-app opzetten
Om door te gaan, moet u vertrouwd zijn met de basisgebruik van Slack
. Log in op uw Slack-account in de browser en maak een nieuwe werkruimte aan. U gebruikt deze werkruimte om uw apps te testen voordat u ze in de werkruimte van uw team gebruikt.Open een ander tabblad en navigeer naar het Slack API-website.
Klik op de Maak een app knop. Kies op de volgende pagina die verschijnt de optie om een app te maken Helemaal opnieuw.
Geef de app een naam en selecteer de werkruimte waarin de app zal werken.
Klik op de App maken knop. Hiermee wordt u omgeleid naar een pagina met de basisinformatie over uw app.
Navigeer in het gedeelte Functies naar de OAuth en machtigingen functie en scrol omlaag naar Bot-tokenbereiken. Voeg een... toe chatten: schrijven ruimte voor uw app. Met dit bereik kan uw app berichten naar de werkruimte verzenden.
Scrol omhoog naar de OAuth-tokens voor uw werkruimte sectie en klik op de Installeer in Workspace knop.
Klik op de volgende pagina die verschijnt op de Toestaan knop. Hiermee wordt de app in uw werkruimte geïnstalleerd.
Een aangepast Slash-commando maken met behulp van de Slack API
Nadat je de Slack-app hebt ingesteld, moet je een aangepaste opdracht maken voor de taak die je wilt uitvoeren. Bijvoorbeeld een schuine streep-opdracht die een grap teruggeeft aan de gebruiker. Navigeer naar de Slash-commando's functie. Klik op de Maak een nieuwe opdracht knop.
Vul de Commando, URL aanvragen, En korte beschrijving van de opdracht die u wilt maken. De aanvraag-URL is het eindpunt waarnaar Slack een POST-verzoek stuurt wanneer een gebruiker de opdracht activeert. Gebruik een localhost-URL als tijdelijke aanduiding; u verandert deze URL later.
Klik op Redden. Wanneer u opslaat, voegt Slack automatisch een opdrachtbereik voor uw app toe. Met dit bereik kan uw app snelkoppelingen en slash-opdrachten toevoegen die mensen in uw werkruimte kunnen gebruiken. Als u de scopes wijzigt, moet u de app opnieuw installeren. Klik op de installeer uw app opnieuw knop.
Klik op de pagina die hierna verschijnt op opnieuw installeren van de app op uw werkruimte toestaan.
Het gedrag van de Slash-opdracht configureren
Start een Python IDE. Creëer een nieuwe virtuele omgeving. Maak een nieuw Python-bestand en een nieuw .env-bestand. Voer op de terminal de volgende opdracht uit om de vereiste bibliotheken te installeren.
pip install python-dotenv vraagt om Flask slack-bolt
De python-dotenv Met de bibliotheek kunt u de omgevingsvariabelen in het .env-bestand laden. De aanvragen bibliotheek kunt u HTTP-verzoeken en Fles behandelt inkomende HTTP-verzoeken en retourneert antwoorden. Slappe bout behandelt inkomende Slack-verzoeken.
Open het .env-bestand en maak twee omgevingsvariabelen aan. Noem ze BOT_TOKEN En SIGNING_SECRET respectievelijk. Navigeer naar de Slack API-website. Onder je app's Basis informatie kopieer het ondertekeningsgeheim en gebruik het om de variabele BOT_TOKEN te initialiseren. Navigeer naar de functie OAuth & machtigingen en kopieer het OAuth-token voor de botgebruiker. Gebruik het om de variabele SIGNING_SECRET te initialiseren.
Het bot-token is een unieke identificatie die uw app verifieert met de API van Slack bij het maken van API-aanroepen. Het ondertekeningsgeheim verifieert dat inkomende verzoeken aan uw app afkomstig zijn van Slack.
De volledige broncode is beschikbaar in een GitHub-opslagplaats.
Importeer de vereiste bibliotheken en modules.
importeren os
van padlib importeren Pad
van dotenv importeren load_dotenv
importeren aanvragen
van kolf importeren Kolf, verzoek, jsonify
van slappe_bout importeren app
van slack_bolt.adapter.kolf importeren SlackRequestHandler
Maak een nieuw exemplaar van een Flask-toepassing.
app = Fles (__naam__)
Laad de omgevingsvariabelen uit het .env-bestand met behulp van de load_dotenv() functie.
env_pad = Pad('.') / '.env'
load_dotenv (dotenv_path=env_path)
Maak een nieuwe instantie van een Slack-app met behulp van de app klasse uit de bibliotheek slack_bolt.
slack_app = App(
token=os.environ['BOT_TOKEN'],
signing_secret=os.environ['SIGNING_SECRET']
)
Maak een routehandlerfunctie die inkomende verzoeken aan de /slack/command eindpunt. Wanneer het eindpunt een ontvangt NA verzoek, ontleedt het de gegevens van de aanvraagtekst. Vervolgens wordt gecontroleerd of de opdracht is /joke. Als dat zo is, roept het de krijg_grapje() functie en retourneert een JSON-antwoord naar Slack met het resultaat van de opdracht.
@app.route("/slack/command", methods=["POST"])
defcommando():
# Parseer lichaamsgegevens van verzoeken
data = aanvraagformulier# Roep de juiste functie aan op basis van de slash-opdracht
als gegevens["commando"] == "/grap":
bericht = get_joke()
anders:
bericht = f"Ongeldige opdracht: {gegevens['commando']}"
# Reageer op Slack
opbrengst jsonify({"tekst": bericht})
Maak een functie die een GET-verzoek naar het icanhazdadjoke API om een willekeurige grap in JSON-formaat op te halen. Vervolgens wordt de grap geretourneerd als een tekenreeks.
defkrijg_grap():
URL = " https://icanhazdadjoke.com/"
koppen = {"Aanvaarden": "toepassing/json"}
respons = verzoeken.get (url, headers=headers, timeout=5)
grapje = antwoord.json()["grap"]
opbrengst grap
Maak een nieuw exemplaar van een SlackRequestHandler object dat inkomende verzoeken van Slack zal afhandelen.
handler = SlackRequestHandler (slack_app)
Controleer of het script direct wordt uitgevoerd en start de Flask-applicatie in dat geval op poort 5000.
als __naam__ == "__voornaamst__":
# Start de Flask-app op poort 5000
app.run (poort=5000, foutopsporing=WAAR)
Voer het programma uit om de server op localhost te laten draaien.
Om het programma met Slack te laten communiceren, hebt u een URL nodig waartoe het via internet toegang heeft. Downloaden en uitvoeren ngok. De Met ngrok-software kunt u een veilige openbare URL maken die verkeer tunnelt naar een webserver die op uw computer draait.
Voer de volgende opdracht uit om de openbare URL op te halen:
ngrok http 5000
De onderstaande afbeelding toont de openbare URL op ngrok, wit gemarkeerd.
Kopieer de URL en navigeer naar de Slack API-website. Klik op de Slash-commando's functie. Bewerk de opdracht /joke en vervang de tijdelijke aanduiding voor de verzoek-URL door uw openbare URL. Voeg /slack/events toe aan het einde van de URL om naar uw eindpunt te verwijzen.
Ga naar je werkruimte, typ en verzend de opdracht /joke. Je zou een grap als reactie moeten zien:
Maak uzelf vertrouwd met andere Slack-functies
Slack heeft veel meer functies dan Slash-commando's. Door uzelf vertrouwd te maken met deze functies, kunt u begrijpen hoe ze werken.
U kunt vervolgens zoeken naar manieren om ze aan te passen aan de vereisten van uw werkruimte. Dit verhoogt de productiviteit van uw team.