Class SlackChannel
Slack channel adapter using SlackNet Socket Mode. Supports native slash command handling via ICommandAwareChannel.
public sealed class SlackChannel : IChannel, IAsyncDisposable, ICommandAwareChannel
- Inheritance
-
SlackChannel
- Implements
- Inherited Members
Constructors
SlackChannel(string, string)
public SlackChannel(string botToken, string appToken)
Parameters
Fields
CommandPrefix
Prefix for Slack slash commands (e.g., "/jdai-help").
public const string CommandPrefix = "/jdai-"
Field Value
Properties
ChannelType
Unique channel type identifier (e.g., "discord", "signal", "web").
public string ChannelType { get; }
Property Value
DisplayName
Display name for this channel instance.
public string DisplayName { get; }
Property Value
IsConnected
Whether the channel is currently connected and healthy.
public bool IsConnected { get; }
Property Value
Methods
ConnectAsync(CancellationToken)
Connects to the messaging platform.
public Task ConnectAsync(CancellationToken ct = default)
Parameters
Returns
DisconnectAsync(CancellationToken)
Gracefully disconnects.
public Task DisconnectAsync(CancellationToken ct = default)
Parameters
Returns
DisposeAsync()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
public ValueTask DisposeAsync()
Returns
- ValueTask
A task that represents the asynchronous dispose operation.
HandleMessageAsync(MessageEvent)
Process an incoming Slack event (called by event handler registration).
public Task HandleMessageAsync(MessageEvent slackEvent)
Parameters
slackEventMessageEvent
Returns
HandleSlashCommandAsync(string, string, string, string)
Handles a Slack slash command payload. Called by the gateway when a /jdai-* command is received from Slack's API.
public Task<string> HandleSlashCommandAsync(string commandName, string text, string userId, string channelId)
Parameters
commandNamestringThe command name without slash (e.g., "jdai-help").
textstringThe text after the command.
userIdstringSlack user ID.
channelIdstringSlack channel ID.
Returns
RegisterCommandsAsync(ICommandRegistry, CancellationToken)
Registers commands from the registry as platform-native commands. Called after ConnectAsync when commands are available.
public Task RegisterCommandsAsync(ICommandRegistry registry, CancellationToken ct = default)
Parameters
registryICommandRegistryctCancellationToken
Returns
SendMessageAsync(string, string, CancellationToken)
Sends a message to the specified conversation/thread.
public Task SendMessageAsync(string conversationId, string content, CancellationToken ct = default)
Parameters
conversationIdstringcontentstringctCancellationToken
Returns
Events
MessageReceived
Raised when a new inbound message arrives.
public event Func<ChannelMessage, Task>? MessageReceived
Event Type
Remarks
Uses Func<ChannelMessage, Task> instead of EventHandler to support async handlers.