Module trigger.slack

ballerinax/trigger.slack Ballerina library
Overview
The ballerinax/trigger.slack
module provides a Listener to grasp events triggered from your Slack App. This functionality is provided by Slack Events API.
Prerequisites
Before using this connector in your Ballerina application, complete the following:
- Create a Slack account.
- Subscribe to events and obtain verification token
- Visit https://api.slack.com/apps, create your own Slack App and enable Event Subscription by going to
Event Subscriptions
section in your Slack App. - Add events that you are planning to listen in the
Subscribe to events on behalf of users
section and save changes. - Obtain
Verification Token
from theBasic Information
section of your Slack App.
- Visit https://api.slack.com/apps, create your own Slack App and enable Event Subscription by going to
Compatibility
Version | |
---|---|
Ballerina Language | Ballerina Swan Lake 2201.11.0 |
Slack Events API | V1.0.0 |
Quickstart
To use the Slack listener in your Ballerina application, update the .bal file as follows:
Step 1: Import listener
Import the ballerinax/trigger.slack
module as shown below.
import ballerinax/trigger.slack;
Step 2: Create a new listener instance
Create a slack:Listener
using your Slack Verification Token
, port and initialize the listener with it.
slack:ListenerConfig configuration = { verificationToken: "VERIFICATION_TOKEN" }; listener slack:Listener slackListener = new (configuration);
Step 3: Implement a listener remote function
- Now you can implement a listener remote function supported by this connector.
-
Write a remote function to receive a particular event type. Implement your logic within that function as shown in the below sample.
-
Following is a simple sample for using Slack listener
import ballerina/log; import ballerinax/trigger.slack; listener slack:Listener slackListener = new (verificationToken); service slack:UserChangeService on slackListener { isolated remote function onUserChange(slack:GenericEventWrapper event) returns error? { log:printInfo("New Message"); } }
- Use
bal run
command to compile and run the Ballerina program.
-
Register the request URL
- Run your ballerina service (similar to above sample) on prefered port.
- Start ngrok on same port using the command
./ngrok http 9090
- In
Event Subscriptions
section of your Slack App settings, paste the URL issued by ngrok following with your service path (eg :https://365fc542d344.ngrok.io/slack/events/
) ('/slack/events/'
should be added after thr ngrok URL. Even if it's not an ngrok URL, trailing / at the end of the URL is mandatory). - Slack Event API will send a url_verification event containing the token and challenge key value pairs.
- Slack Listener will automatically verify the URL by comparing the token and send the required response back to slack
- Check whether your request URL displayed as
verified
inEvent Subscriptions
section of your Slack App. - Subscribe to the events that you are planning to listen and click
Save Changes
button.
-
Receiving events
- After successful verification of Request URL your ballerina service will receive events.
Report issues
To report bugs, request new features, start new discussions, etc., go to the Ballerina Library repository
Useful links
- For more information go to the
trigger.slack
package. - For example demonstrations of the usage, go to Ballerina By Examples.
- Chat live with us via our Discord server.
- Post all technical questions on Stack Overflow with the #ballerina tag.