Skip to content

xatkit-bot-platform/xatkit-slack-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xatkit Slack Platform

License Badge Wiki Badge

Receive and send messages from Slack.

The Slack platform is a concrete implementation of the ChatPlatform.

Providers

The Slack platform defines the following providers:

Provider Type Context Parameters Description
ChatProvider Intent - chat.channel: the identifier of the channel that sent the message
- chat.username: the name of the user that sent the message
- chat.rawMessage: the raw message sent by the user (before NLP processing)
Receive messages from a communication channel and translate them into Xatkit-compatible intents (inherited from ChatPlatform)
SlackIntentProvider Intent - slack.team: the identifier of the Slack workspace containing the channel that sent the message
- slack.channel: the identifier of the Slack channel that sent the message
- slack.username: the name of the Slack user that sent the message
- slack.rawMessage: the raw message sent by the user (before NLP processing)
- userId: the Slack unique identifier of the user that sent the message
- userEmail: the email address of the Slack user that sent the message
- slack.threadTs: the timestamp of the thread of the received message (empty if the message wasn't post in a thread)
- slack.messageTs: the timestamp of the received message
Receive messages from Slack and translates them into Xatkit-compatible intents. Note that slack.channel, slack.username, and slack.rawMessage contain the same values as chat.channel, chat.username, and chat.rawMessage

Actions

Action Parameters Return Return Type Description
PostMessage - message(String): the message to post
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- (Optional) threadTs (String): the timestamp of the thread to post the message in
The posted message String (the timestamp of the posted message) Posts the provided message to the given Slack channel (inherited from ChatPlatform).
PostMessage - message(String): the message to post
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
- (Optional) threadTs (String): the timestamp of the thread to post the message in
The posted message String (the timestamp of the posted message) Posts the provided message to the Slack channel contained in the teamId workspace
Reply - message (String): the message to post as a reply The posted message String (the timestamp of the posted message) Posts the provided message as a reply to a received message (inherited from ChatPlatform). If the received message is contained in a thread the reply is appended to the same thread.
PostFileMessage - message (String): the message to post with the file
- file (File): the file to post
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
null null Posts the provided file with the provided message to the Slack channel contained in the teamId workspace (the file title is automatically set with the name of the provided file)
PostFileMessage - title (String): the associated to the file to post
- message (String): the message to post with the file
- content (String): the raw content of the file to post
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
null null Posts a file with the provided content and title to the Slack channel contained in the teamId workspace
ReplyFileMessage - message (String): the message to post with the file
- file (File): the file to post
null null Posts the provided file as a reply to a received message
PostAttachmentsMessage - attachments (List<Attachment>: the attachments to set in the message
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
null null Posts a message with the given attachments to the Slack channel contained in the teamId workspace
PostAttachmentsMessage - pretext (String): the text to display before the attachment
- title (String): the title of the attachment
- text (String): the text of the attachment
- attchColor (String): the color of the attachment (in HEX format)
- timestamp (String): the timestamp associated to the attachment
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
null null Posts a message containing the given pretext with an attachment containing the provided title, text, attchColor, and timestamp to the Slack channel contained in the teamId workspace
PostAttachmentMessage - pretext (String): the text to display before the attachment
- title (String): the title of the attachment
- text (String): the text of the attachment
- attchColor (String): the color of the attachment (in HEX format)
- channel (String): the name or raw identfier of the Slack channel to post the message to (direct messages can be sent using the target username as channel name)
- teamId (String): the identifier of the Slack workspace containing the channel to post to
null null Posts a message containing the given pretext with an attachment containing the provided title, text, and attchColor to the Slack channel contained in the teamId workspace (the attachment timestamp is automatically set to the current date)
ReplyAttachmentMessage - attachments (List<Attachment>: the attachments to set in the message null null Posts a message with the given attachments as a reply to a received message
ReplyAttachmentMessage - pretext (String): the text to display before the attachment
- title (String): the title of the attachment
- text (String): the text of the attachment
- attchColor (String): the color of the attachment (in HEX format)
- timestamp (String): the timestamp associated to the attachment
null null Posts a message containing the given pretext with an attachment containing the provided title, text, attchColor, and timestamp as a reply to a received message
ReplyAttachmentsMessage pretext (String): the text to display before the attachment
- title (String): the title of the attachment
- text (String): the text of the attachment
- attchColor (String): the color of the attachment (in HEX format)
null null Posts a message containing the given pretext with an attachment containing the provided title, text, and attchColor as a reply to a received message (the attachment timestamp is automatically set to the current date)
IsOnline username (String): the name of the user to check (can be its ID, name, or real name)
- teamId (String): the identifier of the Slack workspace containing the user to check
Whether the provided username is online. Boolean Returns whether the provided username is online in the given teamId.
Note: the provided username can be the user's ID, name, or real name.
ItemizeList - list (List): the list to itemize A String presenting the provided list as a set of items String Creates a set of items from the provided list. This actions relies on Object.toString() to print each item's content
ItemizeList - list (List): the list to itemize
- formatter (Formatter the formatter used to print each item
A String presenting the provided list as a set of items formatted with the given formatter String Creates a set of items from the provided list. This action relies on the provided formatter to print each item's content
EnumerateList - list (List): the list to enumerate A String presenting the provided list as an enumeration String Creates an enumeration from the provided list. This actions relies on Object.toString() to print each item's content
EnumerateList - list (List): the list to enumerate
- formatter (Formatter the formatter used to print each item
A String presenting the provided list as an enumeration formatted with the given formatter String Creates an enumeration from the provided list. This action relies on the provided formatter to print each item's content

Options

The Slack platform supports the following configuration options

Key Values Description Constraint
xatkit.slack.token String The Slack token used by Xatkit to deploy the bot Optional (not needed if xatkit.slack.client.id and xatkit.slack.client.secret are specified, mandatory otherwise)
xatkit.slack.client.id String The Slack app's client identifier used by Xatkit to start the Slack platform and allow new installations of the app Optional (not needed when starting the Slack platform in development mode with a valid xatkit.slack.token)
xatkit.slack.ignore_fallback_on_group_channels Boolean Specifies whether fallback intents should be ignored in group channels Optional (default false)
xatkit.slack.listen_mentions_on_group_channels Boolean Specifies whether the bot should only listen to mentions in group channels Optional (default false)

Installing and using the Slack platform

An example of a bot that uses Slack and the GitHub platforms is available in our repository of examples.

Make sure also to include this dependency to your pom

    <dependency>
        <groupId>com.xatkit</groupId>
        <artifactId>slack-platform</artifactId>
        <version>3.0.1-SNAPSHOT</version>
    </dependency>