Skip to main content

Class: SlackMessageAdapter

An adapter for Slack's interactive message components such as buttons, menus, and dialogs.

Constructors

new SlackMessageAdapter()

new SlackMessageAdapter(signingSecret, __namedParameters): SlackMessageAdapter

Create a message adapter.

Parameters

signingSecret: string

Slack app signing secret used to authenticate request

__namedParameters: MessageAdapterOptions = {}

Returns

SlackMessageAdapter

Defined in

adapter.ts:154

Properties

lateResponseFallbackEnabled

lateResponseFallbackEnabled: boolean;

Whether or not promises that resolve after the syncResponseTimeout can fallback to a request for the response_url. This only works in cases where the semantic meaning of the response and the response_url are the same.

Defined in

adapter.ts:136


signingSecret

signingSecret: string;

Slack app signing secret used to authenticate request

Defined in

adapter.ts:124


syncResponseTimeout

syncResponseTimeout: number;

The number of milliseconds to wait before flushing a synchronous response to an incoming request and falling back to an asynchronous response.

Defined in

adapter.ts:130

Methods

action()

action(matchingConstraints, callback): this

Add a handler for an interactive message action.

Usually there's no need to be concerned with how a message is sent to Slack, but the following table describes it fully.

ActionReturn objectReturn Promise<object>Return undefinedCall respond(message)Notes
Button PressMessage in responseWhen resolved before syncResponseTimeout or lateResponseFallbackEnabled: false, message in response
When resolved after syncResponseTimeout and lateResponseFallbackEnabled: true, message in request to response_url
Empty responseMessage in request to response_urlCreate a new message instead of replacing using replace_original: false
Menu SelectionMessage in responseWhen resolved before syncResponseTimeout or lateResponseFallbackEnabled: false, message in response
When resolved after syncResponseTimeout and lateResponseFallbackEnabled: true, message in request to response_url
Empty responseMessage in request to response_urlCreate a new message instead of replacing using replace_original: false
Message ActionMessage in responseWhen resolved before syncResponseTimeout or lateResponseFallbackEnabled: false, message in response
When resolved after syncResponseTimeout and lateResponseFallbackEnabled: true, message in request to response_url
Empty responseMessage in request to response_url
Dialog SubmissionError list in responseError list in responseEmpty responseMessage in request to response_urlReturning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. Warning logged if a promise isn't completed before syncResponseTimeout.

Parameters

matchingConstraints: string | RegExp | ActionConstraints

the callback ID (as a string or RegExp) or an object describing the constraints to match actions for the handler.

callback: ActionHandler

the function to run when an action is matched

Returns

this

this instance (for chaining)

Defined in

adapter.ts:284


createServer()

createServer(): Promise<Server>

Create a server that dispatches Slack's interactive message actions and menu requests to this message adapter instance. Use this method if your application will handle starting the server.

Returns

Promise<Server>

A promise that resolves to an instance of http.Server and will dispatch interactive message actions and options requests to this message adapter instance. See https://nodejs.org/dist/latest/docs/api/http.html#http_class_http_server

Defined in

adapter.ts:197


dispatch()

dispatch(payload): undefined | Promise<DispatchResult>

Internal

Dispatches the contents of an HTTP request to the registered handlers.

Parameters

payload: any

Returns

undefined | Promise<DispatchResult>

A promise of the response information (an object with status and content that is a JSON serializable object or a string or undefined) for the request. An undefined return value indicates that the request was not matched.

Remarks

This is an internal API not meant to be used by code depending on this package.

Defined in

adapter.ts:424


expressMiddleware()

expressMiddleware(): RequestHandler

Create a middleware function that can be used to integrate with the express web framework in order for incoming requests to be dispatched to this message adapter instance.

Returns

RequestHandler

A middleware function (see http://expressjs.com/en/guide/using-middleware.html)

Defined in

adapter.ts:248


options()

options(matchingConstraints, callback): this

Add a handler for an options request

Usually there's no need to be concerned with how a message is sent to Slack, but the following table describes it fully

 Return optionsReturn Promise<options>Return undefinedNotes
Options RequestOptions in responseOptions in responseEmpty responseReturning a Promise that takes longer than 3 seconds to resolve can result in the user seeing an error. If the request is from within a dialog, the text field is called label.

Parameters

matchingConstraints: string | RegExp | OptionsConstraints

the callback ID (as a string or RegExp) or an object describing the constraints to select options requests for the handler.

callback: OptionsHandler

the function to run when an options request is matched

Returns

this

this instance (for chaining)

Defined in

adapter.ts:342


requestListener()

requestListener(): RequestListener

Create a request listener function that handles HTTP requests, verifies requests and dispatches responses

Returns

RequestListener

Defined in

adapter.ts:258


shortcut()

shortcut(matchingConstraints, callback): this

Parameters

matchingConstraints: string | RegExp | ShortcutConstraints

callback: ShortcutHandler

Returns

this

Defined in

adapter.ts:308


start()

start(port): Promise<Server>

Start a built-in server that dispatches Slack's interactive message actions and menu requests to this message adapter interface.

Parameters

port: number

Returns

Promise<Server>

A promise that resolves once the server is ready

Defined in

adapter.ts:208


stop()

stop(): Promise<void>

Stop the previously started built-in server.

Returns

Promise<void>

A promise that resolves once the server is cleaned up.

Defined in

adapter.ts:223


viewClosed()

viewClosed(matchingConstraints, callback): this

Add a handler for view closed interaction. The handler should not return a value.

Parameters

matchingConstraints: string | RegExp | ViewConstraints

the callback ID (as a string or RegExp) or an object describing the constraints to match view closed interactions for the handler.

callback: ViewClosedHandler

the function to run when an view closed interaction is matched

Returns

this

this instance (for chaining)

Defined in

adapter.ts:397


viewSubmission()

viewSubmission(matchingConstraints, callback): this

Add a handler for view submission.

The value returned from the callback determines the response sent back to Slack. The handler can return a plain object with a response_action property to dismiss the modal, push a view into the modal, display validation errors, or update the view. Alternatively, the handler can return a Promise for this kind of object, which resolves before syncResponseTimeout or lateResponseFallbackEnabled: false, to perform the same response actions. If the Promise resolves afterwards or lateResponseFallbackEnabled: true then the modal will be dismissed. If the handler returns undefined the modal will be dismissed.

Parameters

matchingConstraints: string | RegExp | ViewConstraints

the callback ID (as a string or RegExp) or an object describing the constraints to match view submissions for the handler.

callback: ViewSubmissionHandler

the function to run when an view submission is matched

Returns

this

this instance (for chaining)

Defined in

adapter.ts:375