Chapter 287. Slack Component
Available as of Camel version 2.16
The slack component allows you to connect to an instance of http://www.slack.com/[Slack] and delivers a message contained in the message body via a pre established https://api.slack.com/incoming-webhooks[Slack incoming webhook].
Maven users will need to add the following dependency to their pom.xml
for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-slack</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
Copy to clipboardCopied287.1. URI format
To send a message to a channel.
slack:#channel[?options]
Copy to clipboardCopiedTo send a direct message to a slackuser.
slack:@username[?options]
Copy to clipboardCopied287.2. Options
The Slack component supports 2 options which are listed below.
Name | Description | Default | Type |
---|---|---|---|
webhookUrl (producer) | The incoming webhook URL | String | |
resolveProperty Placeholders (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean |
The Slack endpoint is configured using URI syntax:
slack:channel
with the following path and query parameters:
287.2.1. Path Parameters (1 parameters):
Name | Description | Default | Type |
---|---|---|---|
channel | Required The channel name (syntax name) or slackuser (syntax userName) to send a message directly to an user. | String |
287.2.2. Query Parameters (5 parameters):
Name | Description | Default | Type |
---|---|---|---|
iconEmoji (producer) | Use a Slack emoji as an avatar | String | |
iconUrl (producer) | The avatar that the component will use when sending message to a channel or user. | String | |
username (producer) | This is the username that the bot will have when sending messages to a channel or user. | String | |
webhookUrl (producer) | The incoming webhook URL | String | |
synchronous (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean |
287.3. SlackComponent
The SlackComponent with XML must be configured as a Spring or Blueprint bean that contains the incoming webhook url for the integration as a parameter.
<bean id="slack" class="org.apache.camel.component.slack.SlackComponent">
<property name="webhookUrl" value="https://hooks.slack.com/services/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"/>
</bean>
Copy to clipboardCopiedFor Java you can configure this using Java code.
287.4. Example
A CamelContext with Blueprint could be as:
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy">
<bean id="slack" class="org.apache.camel.component.slack.SlackComponent">
<property name="webhookUrl" value="https://hooks.slack.com/services/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"/>
</bean>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="direct:test"/>
<to uri="slack:#channel?iconEmoji=:camel:&username=CamelTest"/>
</route>
</camelContext>
</blueprint>
Copy to clipboardCopied287.5. See Also
- Configuring Camel
- Component
- Endpoint
- Getting Started