Options
All
  • Public
  • Public/Protected
  • All
Menu

A client for Slack's Web API

This client provides an alias for each Web API method. Each method is a convenience wrapper for calling the {@link WebClient#apiCall} method using the method name as the first parameter.

Type parameters

  • EventTypes: string | symbol

Hierarchy

Index

Constructors

constructor

  • new WebClient(token?: undefined | string, __namedParameters?: object): WebClient
  • Parameters

    • Optional token: undefined | string

      An API token to authenticate/authorize with Slack (usually start with xoxp, xoxb, or xoxa)

    • Optional __namedParameters: object
      • agent: undefined | false | true | Agent | object
      • clientId: undefined | string
      • clientSecret: undefined | string
      • headers: undefined | object
      • logLevel: undefined | ERROR | WARN | INFO | DEBUG
      • logger: undefined | Logger | LoggingFunc
      • maxRequestConcurrency: undefined | number
      • pageSize: undefined | number
      • refreshToken: undefined | string
      • rejectRateLimitedCalls: undefined | false | true
      • retryConfig: undefined | RetryOptions
      • slackApiUrl: undefined | string
      • tls: undefined | TLSOptions

    Returns WebClient

Properties

Private Optional _accessToken

_accessToken: any

The backing store for the current access token.

Private Optional accessTokenExpiresAt

accessTokenExpiresAt: any

The time (in milliseconds) when the current access token will expire

Private Optional accessTokenLastRefreshedAt

accessTokenLastRefreshedAt: any

The time (in milliseconds) when the last token refresh completed

api

api: object

api method family

Type declaration

  • test: Method<methods.APITestArguments>

apps

apps: object

apps method family

Type declaration

auth

auth: object

auth method family

Type declaration

Private axios

axios: any

Axios HTTP client instance used by this client

bots

bots: object

bots method family

Type declaration

  • info: Method<methods.BotsInfoArguments>

Private buildResult

buildResult: any

Processes an HTTP response into a WebAPICallResult by performing JSON parsing on the body and merging relevent HTTP headers into the object.

param

an http response

channels

channels: object

channels method family

Type declaration

  • archive: Method<methods.ChannelsArchiveArguments>
  • create: Method<methods.ChannelsCreateArguments>
  • history: Method<methods.ChannelsHistoryArguments>
  • info: Method<methods.ChannelsInfoArguments>
  • invite: Method<methods.ChannelsInviteArguments>
  • join: Method<methods.ChannelsJoinArguments>
  • kick: Method<methods.ChannelsKickArguments>
  • leave: Method<methods.ChannelsLeaveArguments>
  • list: Method<methods.ChannelsListArguments>
  • mark: Method<methods.ChannelsMarkArguments>
  • rename: Method<methods.ChannelsRenameArguments>
  • replies: Method<methods.ChannelsRepliesArguments>
  • setPurpose: Method<methods.ChannelsSetPurposeArguments>
  • setTopic: Method<methods.ChannelsSetTopicArguments>
  • unarchive: Method<methods.ChannelsUnarchiveArguments>

chat

chat: object

chat method family

Type declaration

  • delete: Method<methods.ChatDeleteArguments>
  • deleteScheduledMessage: Method<methods.ChatDeleteScheduledMessageArguments>
  • getPermalink: Method<methods.ChatGetPermalinkArguments>
  • meMessage: Method<methods.ChatMeMessageArguments>
  • postEphemeral: Method<methods.ChatPostEphemeralArguments>
  • postMessage: Method<methods.ChatPostMessageArguments>
  • scheduleMessage: Method<methods.ChatScheduleMessageArguments>
  • scheduledMessages: object
    • list: Method<methods.ChatListScheduledMessagesArguments>
  • unfurl: Method<methods.ChatUnfurlArguments>
  • update: Method<methods.ChatUpdateArguments>

Optional clientId

clientId: undefined | string

OAuth 2.0 client identifier

deprecated

Optional clientSecret

clientSecret: undefined | string

OAuth 2.0 client secret

deprecated

conversations

conversations: object

conversations method family

Type declaration

  • archive: Method<methods.ConversationsArchiveArguments>
  • close: Method<methods.ConversationsCloseArguments>
  • create: Method<methods.ConversationsCreateArguments>
  • history: Method<methods.ConversationsHistoryArguments>
  • info: Method<methods.ConversationsInfoArguments>
  • invite: Method<methods.ConversationsInviteArguments>
  • join: Method<methods.ConversationsJoinArguments>
  • kick: Method<methods.ConversationsKickArguments>
  • leave: Method<methods.ConversationsLeaveArguments>
  • list: Method<methods.ConversationsListArguments>
  • members: Method<methods.ConversationsMembersArguments>
  • open: Method<methods.ConversationsOpenArguments>
  • rename: Method<methods.ConversationsRenameArguments>
  • replies: Method<methods.ConversationsRepliesArguments>
  • setPurpose: Method<methods.ConversationsSetPurposeArguments>
  • setTopic: Method<methods.ConversationsSetTopicArguments>
  • unarchive: Method<methods.ConversationsUnarchiveArguments>

dialog

dialog: object

dialog method family

Type declaration

  • open: Method<methods.DialogOpenArguments>

dnd

dnd: object

dnd method family

Type declaration

  • endDnd: Method<methods.DndEndDndArguments>
  • endSnooze: Method<methods.DndEndDndArguments>
  • info: Method<methods.DndInfoArguments>
  • setSnooze: Method<methods.DndSetSnoozeArguments>
  • teamInfo: Method<methods.DndTeamInfoArguments>

emoji

emoji: object

emoji method family

Type declaration

files

files: object

files method family

Type declaration

  • comments: object
    • add: Method<methods.FilesCommentsAddArguments>
    • delete: Method<methods.FilesCommentsDeleteArguments>
    • edit: Method<methods.FilesCommentsEditArguments>
  • delete: Method<methods.FilesDeleteArguments>
  • info: Method<methods.FilesInfoArguments>
  • list: Method<methods.FilesListArguments>
  • revokePublicURL: Method<methods.FilesRevokePublicURLArguments>
  • sharedPublicURL: Method<methods.FilesSharedPublicURLArguments>
  • upload: Method<methods.FilesUploadArguments>

groups

groups: object

groups method family

Type declaration

  • archive: Method<methods.GroupsArchiveArguments>
  • create: Method<methods.GroupsCreateArguments>
  • createChild: Method<methods.GroupsCreateChildArguments>
  • history: Method<methods.GroupsHistoryArguments>
  • info: Method<methods.GroupsInfoArguments>
  • invite: Method<methods.GroupsInviteArguments>
  • kick: Method<methods.GroupsKickArguments>
  • leave: Method<methods.GroupsLeaveArguments>
  • list: Method<methods.GroupsListArguments>
  • mark: Method<methods.GroupsMarkArguments>
  • open: Method<methods.GroupsOpenArguments>
  • rename: Method<methods.GroupsRenameArguments>
  • replies: Method<methods.GroupsRepliesArguments>
  • setPurpose: Method<methods.GroupsSetPurposeArguments>
  • setTopic: Method<methods.GroupsSetTopicArguments>
  • unarchive: Method<methods.GroupsUnarchiveArguments>

im

im: object

im method family

Type declaration

  • close: Method<methods.IMCloseArguments>
  • history: Method<methods.IMHistoryArguments>
  • list: Method<methods.AppsPermissionsResourcesListArguments>
  • mark: Method<methods.IMMarkArguments>
  • open: Method<methods.IMOpenArguments>
  • replies: Method<methods.IMRepliesArguments>

Private isTokenRefreshing

isTokenRefreshing: any

Whether or not a token refresh is currently in progress TODO: maybe this should be a Promise so that other API calls can await this and we don't fill the queue with calls that are destined to fail.

Private logger

logger: any

This object's logger instance

Private makeRequest

makeRequest: any

Low-level function to make a single API request. handles queing, retries, and http-level errors

migration

migration: object

migration method family

Type declaration

  • exchange: Method<methods.MigrationExchangeArguments>

mpim

mpim: object

mpim method family

Type declaration

  • close: Method<methods.MPIMCloseArguments>
  • history: Method<methods.MPIMHistoryArguments>
  • list: Method<methods.AppsPermissionsResourcesListArguments>
  • mark: Method<methods.MPIMMarkArguments>
  • open: Method<methods.MPIMOpenArguments>
  • replies: Method<methods.MPIMRepliesArguments>

oauth

oauth: object

oauth method family

Type declaration

  • access: Method<methods.OAuthAccessArguments>
  • token: Method<methods.OAuthTokenArguments>

Private pageSize

pageSize: any

Automatic pagination page size (limit)

Private performTokenRefresh

performTokenRefresh: any

Perform a token refresh. Before calling this method, this.shouldAutomaticallyRefreshToken should be checked.

This method avoids using apiCall() because that could infinitely recurse when that method determines that the access token is already expired.

pins

pins: object

pins method family

Type declaration

  • add: Method<methods.PinsAddArguments>
  • list: Method<methods.PinsListArguments>
  • remove: Method<methods.PinsRemoveArguments>

reactions

reactions: object

reactions method family

Type declaration

  • add: Method<methods.ReactionsAddArguments>
  • get: Method<methods.ReactionsGetArguments>
  • list: Method<methods.ReactionsListArguments>
  • remove: Method<methods.ReactionsRemoveArguments>

Optional refreshToken

refreshToken: undefined | string

OAuth 2.0 refresh token used to automatically create new access tokens (token) when the current is expired.

deprecated

Private rejectRateLimitedCalls

rejectRateLimitedCalls: any

Preference for immediately rejecting API calls which result in a rate-limited response

reminders

reminders: object

reminders method family

Type declaration

  • add: Method<methods.RemindersAddArguments>
  • complete: Method<methods.RemindersCompleteArguments>
  • delete: Method<methods.RemindersDeleteArguments>
  • info: Method<methods.RemindersInfoArguments>
  • list: Method<methods.DndEndDndArguments>

Private requestQueue

requestQueue: any

Queue of requests in which a maximum of WebClientOptions.maxRequestConcurrency can concurrently be in-flight.

Private retryConfig

retryConfig: any

Configuration for retry operations. See node-retry for more details.

rtm

rtm: object

rtm method family

Type declaration

  • connect: Method<methods.RTMConnectArguments>
  • start: Method<methods.RTMStartArguments>

search

search: object

search method family

Type declaration

  • all: Method<methods.SearchAllArguments>
  • files: Method<methods.SearchAllArguments>
  • messages: Method<methods.SearchAllArguments>

Private serializeApiCallOptions

serializeApiCallOptions: any

Transforms options (a simple key-value object) into an acceptable value for a body. This can be either a string, used when posting with a content-type of url-encoded. Or, it can be a readable stream, used when the options contain a binary (a stream or a buffer) and the upload should be done with content-type multipart/form-data.

param

arguments for the Web API method

param

a mutable object representing the HTTP headers for the outgoing request

Private shouldAutomaticallyRefreshToken

shouldAutomaticallyRefreshToken: any

Determine if this client is in automatic token-refreshing mode

slackApiUrl

slackApiUrl: string

The base URL for reaching Slack's Web API. Consider changing this value for testing purposes.

stars

stars: object

stars method family

Type declaration

  • add: Method<methods.StarsAddArguments>
  • list: Method<methods.StarsListArguments>
  • remove: Method<methods.StarsRemoveArguments>

team

team: object

team method family

Type declaration

  • accessLogs: Method<methods.TeamAccessLogsArguments>
  • billableInfo: Method<methods.TeamBillableInfoArguments>
  • info: Method<TokenOverridable>
  • integrationLogs: Method<methods.TeamIntegrationLogsArguments>
  • profile: object
    • get: Method<methods.TeamProfileGetArguments>

Private tlsConfig

tlsConfig: any

Configuration for custom TLS handling

token

token: string | undefined

Authentication and authorization token for accessing Slack Web API (usually begins with xoxa, xoxp, or xoxb). This should be treated as readonly. Setting this value is used for refreshing tokens, and it is deprecated.

usergroups

usergroups: object

usergroups method family

Type declaration

  • create: Method<methods.UsergroupsCreateArguments>
  • disable: Method<methods.UsergroupsDisableArguments>
  • enable: Method<methods.UsergroupsEnableArguments>
  • list: Method<methods.UsergroupsListArguments>
  • update: Method<methods.UsergroupsUpdateArguments>
  • users: object
    • list: Method<methods.UsergroupsUsersListArguments>
    • update: Method<methods.UsergroupsUsersUpdateArguments>

users

users: object

users method family

Type declaration

  • conversations: Method<methods.UsersConversationsArguments>
  • deletePhoto: Method<TokenOverridable>
  • getPresence: Method<methods.UsersGetPresenceArguments>
  • identity: Method<methods.DndEndDndArguments>
  • info: Method<methods.UsersInfoArguments>
  • list: Method<methods.UsersListArguments>
  • lookupByEmail: Method<methods.UsersLookupByEmailArguments>
  • profile: object
    • get: Method<methods.UsersProfileGetArguments>
    • set: Method<methods.UsersProfileSetArguments>
  • setActive: Method<TokenOverridable>
  • setPhoto: Method<methods.UsersSetPhotoArguments>
  • setPresence: Method<methods.UsersSetPresenceArguments>

Static EventEmitter

EventEmitter: EventEmitterStatic

Static Private loggerName

loggerName: any

The name used to prefix all logging generated from this object

Static prefixed

prefixed: string | boolean

Methods

addListener

  • addListener(event: EventTypes, fn: ListenerFn, context?: any): this
  • Parameters

    • event: EventTypes
    • fn: ListenerFn
    • Optional context: any

    Returns this

apiCall

emit

  • emit(event: EventTypes, ...args: Array<any>): boolean
  • Calls each of the listeners registered for a given event.

    Parameters

    • event: EventTypes
    • Rest ...args: Array<any>

    Returns boolean

eventNames

  • eventNames(): Array<EventTypes>
  • Return an array listing the events for which the emitter has registered listeners.

    Returns Array<EventTypes>

listenerCount

  • listenerCount(event: EventTypes): number
  • Return the number of listeners listening to a given event.

    Parameters

    • event: EventTypes

    Returns number

listeners

  • Return the listeners registered for a given event.

    Parameters

    • event: EventTypes

    Returns Array<ListenerFn>

off

  • off(event: EventTypes, fn?: ListenerFn, context?: any, once?: undefined | false | true): this
  • Parameters

    • event: EventTypes
    • Optional fn: ListenerFn
    • Optional context: any
    • Optional once: undefined | false | true

    Returns this

on

  • on(event: EventTypes, fn: ListenerFn, context?: any): this
  • Add a listener for a given event.

    Parameters

    • event: EventTypes
    • fn: ListenerFn
    • Optional context: any

    Returns this

once

  • once(event: EventTypes, fn: ListenerFn, context?: any): this
  • Add a one-time listener for a given event.

    Parameters

    • event: EventTypes
    • fn: ListenerFn
    • Optional context: any

    Returns this

removeAllListeners

  • Remove all listeners, or those of the specified event.

    Parameters

    Returns this

removeListener

  • removeListener(event: EventTypes, fn?: ListenerFn, context?: any, once?: undefined | false | true): this
  • Remove the listeners of a given event.

    Parameters

    • event: EventTypes
    • Optional fn: ListenerFn
    • Optional context: any
    • Optional once: undefined | false | true

    Returns this

Generated using TypeDoc