Use these Apex classes to work with a Slack bot client.
BotClient Class
Provides access to a Slack Bot Client so you can perform tasks such as publishing views to the home tab or sending messages to a channel.
Usage
Before you can work with a bot client, register the action and get access to a Slack context. To get access to a Slack client, use the Slack.App class.
public void run () {
Slack.App app = Slack.App.MySlackApp.get();
Slack.BotClient client = app.getBotClientForTeam(context.getTeamId());
Slack.ViewReference viewReference = Slack.View.MyViewName.get();
// Get context data
String channel = context.getChannelId();
// Specify your request/response objects and pass in your context data
}
Bots are allowed to post in channels where they are members. If your app must post to a DM between two users, consider using a user client instead.
Many Slack API methods require a token. BotClient automatically includes an appropriate token in your requests. For example,
ChatPostMessageRequest calls Slack's chat.postMessage method, which requires a token along with a few other arguments. This token is automatically included when you use BotClient to make a request.
BotClient Methods
The following are methods for BotClient.
appsUninstall(req)
Signature
public Slack.AppsUninstallResponse appsUninstall(Slack.AppsUninstallRequest req)
Parameters
req
Type: Slack.AppsUninstallRequest
Return Value
Type: Slack.AppsUninstallResponse
authRevoke(req)
Signature
public Slack.AuthRevokeResponse authRevoke(Slack.AuthRevokeRequest req)
Parameters
req
Type: Slack.AuthRevokeRequest
Return Value
Type: Slack.AuthRevokeResponse
authTeamsList(req)
Signature
public Slack.AuthTeamsListResponse authTeamsList(Slack.AuthTeamsListRequest req)
Parameters
req
Type: Slack.AuthTeamsListRequest
Return Value
Type: Slack.AuthTeamsListResponse
authTest(req)
Signature
public Slack.AuthTestResponse authTest(Slack.AuthTestRequest req)
Parameters
req
Type: Slack.AuthTestRequest
Return Value
Type: Slack.AuthTestResponse
botsInfo(req)
Signature
public Slack.BotsInfoResponse botsInfo(Slack.BotsInfoRequest req)
Parameters
req
Type: Slack.BotsInfoRequest
Return Value
Type: Slack.BotsInfoResponse
callsAdd(req)
Signature
public Slack.CallsAddResponse callsAdd(Slack.CallsAddRequest req)
Parameters
req
Type: Slack.CallsAddRequest
Return Value
Type: Slack.CallsAddResponse
callsEnd(req)
Signature
public Slack.CallsEndResponse callsEnd(Slack.CallsEndRequest req)
Parameters
req
Type: Slack.CallsEndRequest
Return Value
Type: Slack.CallsEndResponse
callsInfo(req)
Signature
public Slack.CallsInfoResponse callsInfo(Slack.CallsInfoRequest req)
Parameters
req
Type: Slack.CallsInfoRequest
Return Value
Type: Slack.CallsInfoResponse
callsParticipantsAdd(req)
Signature
public Slack.CallsParticipantsAddResponse callsParticipantsAdd(Slack.CallsParticipantsAddRequest req)
Parameters
req
Type: Slack.CallsParticipantsAddRequest
Return Value
Type: Slack.CallsParticipantsAddResponse
callsParticipantsRemove(req)
Signature
public Slack.CallsParticipantsRemoveResponse callsParticipantsRemove(Slack.CallsParticipantsRemoveRequest req)
Parameters
req
Type: Slack.CallsParticipantsRemoveRequest
Return Value
Type: Slack.CallsParticipantsRemoveResponse
callsUpdate(req)
Signature
public Slack.CallsUpdateResponse callsUpdate(Slack.CallsUpdateRequest req)
Parameters
req
Type: Slack.CallsUpdateRequest
Return Value
Type: Slack.CallsUpdateResponse
chatDelete(req)
Signature
public Slack.ChatDeleteResponse chatDelete(Slack.ChatDeleteRequest req)
Parameters
req
Type: Slack.ChatDeleteRequest
Return Value
Type: Slack.ChatDeleteResponse
chatDeleteScheduledMessage(req)
Signature
public Slack.ChatDeleteScheduledMessageResponse
chatDeleteScheduledMessage(
Slack.ChatDeleteScheduledMessageRequest req)
Parameters
req
Type: Slack.ChatDeleteScheduledMessageRequest
Return Value
Type: Slack.ChatDeleteScheduledMessageResponse
chatGetPermalink(req)
Signature
public Slack.ChatGetPermalinkResponse
chatGetPermalink(Slack.ChatGetPermalinkRequest req)
Parameters
req
Type: Slack.ChatGetPermalinkRequest
Return Value
Type: Slack.ChatGetPermalinkResponse
chatMeMessage(req)
Signature
public Slack.ChatMeMessageResponse chatMeMessage(Slack.ChatMeMessageRequest req)
Parameters
req
Type: Slack.ChatMeMessageRequest
Return Value
Type: Slack.ChatMeMessageResponse
chatPostEphemeral(req)
Signature
public Slack.ChatPostEphemeralResponse chatPostEphemeral(Slack.ChatPostEphemeralRequest req)
Parameters
req
Type: Slack.ChatPostEphemeralRequest
Return Value
Type: Slack.ChatPostEphemeralResponse
chatPostMessage(req)
Signature
public Slack.ChatPostMessageResponse chatPostMessage(Slack.ChatPostMessageRequest req)
Parameters
req
Type: Slack.ChatPostMessageRequest
Return Value
Type: Slack.ChatPostMessageResponse
chatScheduleMessage(req)
Signature
public Slack.ChatScheduleMessageResponse chatScheduleMessage(Slack.ChatScheduleMessageRequest req)
Parameters
req
Type: Slack.ChatScheduleMessageRequest
Return Value
Type: Slack.ChatScheduleMessageResponse
chatScheduledMessagesList(req)
Signature
public Slack.ChatScheduledMessagesListResponse chatScheduledMessagesList(Slack.ChatScheduledMessagesListRequest req)
Parameters
req
Type: Slack.ChatScheduledMessagesListRequest
Return Value
Type: Slack.ChatScheduledMessagesListResponse
chatUpdate(req)
Signature
public Slack.ChatUpdateResponse chatUpdate(Slack.ChatUpdateRequest req)
Parameters
req
Type: Slack.ChatUpdateRequest
Return Value
Type: Slack.ChatUpdateResponse
conversationsArchive(req)
Signature
public Slack.ConversationsArchiveResponse conversationsArchive(Slack.ConversationsArchiveRequest req)
Parameters
req
Type: Slack.ConversationsArchiveRequest
Return Value
Type: Slack.ConversationsArchiveResponse
conversationsClose(req)
Signature
public Slack.ConversationsCloseResponse conversationsClose(Slack.ConversationsCloseRequest req)
Parameters
req
Type: Slack.ConversationsCloseRequest
Return Value
Type: Slack.ConversationsCloseResponse
conversationsCreate(req)
Signature
public Slack.ConversationsCreateResponse conversationsCreate(Slack.ConversationsCreateRequest req)
Parameters
req
Type: Slack.ConversationsCreateRequest
Return Value
Type: Slack.ConversationsCreateResponse
conversationsHistory(req)
Signature
public Slack.ConversationsHistoryResponse conversationsHistory(Slack.ConversationsHistoryRequest req)
Parameters
req
Type: Slack.ConversationsHistoryRequest
Return Value
Type: Slack.ConversationsHistoryResponse
conversationsInfo(req)
Signature
public Slack.ConversationsInfoResponse conversationsInfo(Slack.ConversationsInfoRequest req)
Parameters
req
Type: Slack.ConversationsInfoRequest
Return Value
Type: Slack.ConversationsInfoResponse
conversationsInvite(req)
Signature
public Slack.ConversationsInviteResponse conversationsInvite(Slack.ConversationsInviteRequest req)
Parameters
req
Type: Slack.ConversationsInviteRequest
Return Value
Type: Slack.ConversationsInviteResponse
conversationsJoin(req)
Signature
public Slack.ConversationsJoinResponse conversationsJoin(Slack.ConversationsJoinRequest req)
Parameters
req
Type: Slack.ConversationsJoinRequest
Return Value
Type: Slack.ConversationsJoinResponse
conversationsKick(req)
Signature
public Slack.ConversationsKickResponse conversationsKick(Slack.ConversationsKickRequest req)
Parameters
req
Type: Slack.ConversationsKickRequest
Return Value
Type: Slack.ConversationsKickResponse
conversationsLeave(req)
Signature
public Slack.ConversationsLeaveResponse conversationsLeave(Slack.ConversationsLeaveRequest req)
Parameters
req
Type: Slack.ConversationsLeaveRequest
Return Value
Type: Slack.ConversationsLeaveResponse
conversationsList(req)
Signature
public Slack.ConversationsListResponse conversationsList(Slack.ConversationsListRequest req)
Parameters
req
Type: Slack.ConversationsListRequest
Return Value
Type: Slack.ConversationsListResponse
conversationsMark(req)
Signature
public Slack.ConversationsMarkResponse conversationsMark(Slack.ConversationsMarkRequest req)
Parameters
req
Return Value
Type: Slack.ConversationsMarkResponse
conversationsMembers(req)
Signature
public Slack.ConversationsMembersResponse conversationsMembers(Slack.ConversationsMembersRequest req)
Parameters
req
Type: Slack.ConversationsMembersRequest
Return Value
Type: Slack.ConversationsMembersResponse
conversationsOpen(req)
Signature
public Slack.ConversationsOpenResponse conversationsOpen(Slack.ConversationsOpenRequest req)
Parameters
req
Type: Slack.ConversationsOpenRequest
Return Value
Type: Slack.ConversationsOpenResponse
conversationsRename(req)
Signature
public Slack.ConversationsRenameResponse conversationsRename(Slack.ConversationsRenameRequest req)
Parameters
req
Type: Slack.ConversationsRenameRequest
Return Value
Type: Slack.ConversationsRenameResponse
conversationsReplies(req)
Signature
public Slack.ConversationsRepliesResponse conversationsReplies(Slack.ConversationsRepliesRequest req)
Parameters
req
Type: Slack.ConversationsRepliesRequest
Return Value
Type: Slack.ConversationsRepliesResponse
conversationsSetPurpose(req)
Signature
public Slack.ConversationsSetPurposeResponse conversationsSetPurpose(Slack.ConversationsSetPurposeRequest req)
Parameters
req
Type: Slack.ConversationsSetPurposeRequest
Return Value
Type: Slack.ConversationsSetPurposeResponse
conversationsSetTopic(req)
Signature
public Slack.ConversationsSetTopicResponse conversationsSetTopic(Slack.ConversationsSetTopicRequest req)
Parameters
req
Type: Slack.ConversationsSetTopicRequest
Return Value
Type: Slack.ConversationsSetTopicResponse
conversationsUnarchive(req)
Signature
public Slack.ConversationsUnarchiveResponse conversationsUnarchive(Slack.ConversationsUnarchiveRequest req)
Parameters
req
Type: Slack.ConversationsUnarchiveRequest
Return Value
Type: Slack.ConversationsUnarchiveResponse
dndInfo(req)
Signature
public Slack.DndInfoResponse dndInfo(Slack.DndInfoRequest req)
Parameters
req
Type: Slack.DndInfoRequest
Return Value
Type: Slack.DndInfoResponse
dndTeamInfo(req)
Signature
public Slack.DndTeamInfoResponse dndTeamInfo(Slack.DndTeamInfoRequest req)
Parameters
req
Type: Slack.DndTeamInfoRequest
Return Value
Type: Slack.DndTeamInfoResponse
emojiList(req)
Signature
public Slack.EmojiListResponse emojiList(Slack.EmojiListRequest req)
Parameters
req
Type: Slack.EmojiListRequest
Return Value
Type: Slack.EmojiListResponse
filesDelete(req)
Signature
public Slack.FilesDeleteResponse filesDelete(Slack.FilesDeleteRequest req)
Parameters
req
Type: Slack.FilesDeleteRequest
Return Value
Type: Slack.FilesDeleteResponse
filesInfo(req)
Signature
public Slack.FilesInfoResponse filesInfo(Slack.FilesInfoRequest req)
Parameters
req
Type: Slack.FilesInfoRequest
Return Value
Type: Slack.FilesInfoResponse
filesList(req)
Signature
public Slack.FilesListResponse filesList(Slack.FilesListRequest req)
Parameters
req
Type: Slack.FilesListRequest
Return Value
Type: Slack.FilesListResponse
filesRemoteAdd(req)
Signature
public Slack.FilesRemoteAddResponse filesRemoteAdd(Slack.FilesRemoteAddRequest req)
Parameters
req
Type: Slack.FilesRemoteAddRequest
Return Value
Type: Slack.FilesRemoteAddResponse
filesRemoteInfo(req)
Signature
public Slack.FilesRemoteInfoResponse filesRemoteInfo(Slack.FilesRemoteInfoRequest req)
Parameters
req
Type: Slack.FilesRemoteInfoRequest
Return Value
Type: Slack.FilesRemoteInfoResponse
filesRemoteList(req)
Signature
public Slack.FilesRemoteListResponse filesRemoteList(Slack.FilesRemoteListRequest req)
Parameters
req
Type: Slack.FilesRemoteListRequest
Return Value
Type: Slack.FilesRemoteListResponse
filesRemoteRemove(req)
Signature
public Slack.FilesRemoteRemoveResponse filesRemoteRemove(Slack.FilesRemoteRemoveRequest req)
Parameters
req
Type: Slack.FilesRemoteRemoveRequest
Return Value
Type: Slack.FilesRemoteRemoveResponse
filesRemoteShare(req)
Signature
public Slack.FilesRemoteShareResponse filesRemoteShare(Slack.FilesRemoteShareRequest req)
Parameters
req
Type: Slack.FilesRemoteShareRequest
Return Value
Type: Slack.FilesRemoteShareResponse
filesRemoteUpdate(req)
Signature
public Slack.FilesRemoteUpdateResponse filesRemoteUpdate(Slack.FilesRemoteUpdateRequest req)
Parameters
req
Type: Slack.FilesRemoteUpdateRequest
migrationExchange(req)
Signature
public Slack.MigrationExchangeResponse migrationExchange(Slack.MigrationExchangeRequest req)
Parameters
req
Type: Slack.MigrationExchangeRequest
Return Value
Type: Slack.MigrationExchangeResponse
pinsAdd(req)
Signature
public Slack.PinsAddResponse pinsAdd(Slack.PinsAddRequest req)
Parameters
req
Type: Slack.PinsAddRequest
Return Value
Type: Slack.PinsAddResponse
pinsList(req)
Signature
public Slack.PinsListResponse pinsList(Slack.PinsListRequest req)
Parameters
req
Type: Slack.PinsListRequest
Return Value
Type: Slack.PinsListResponse
pinsRemove(req)
Signature
public Slack.PinsRemoveResponse pinsRemove(Slack.PinsRemoveRequest req)
Parameters
req
Type: Slack.PinsRemoveRequest
Return Value
Type: Slack.PinsRemoveResponse
reactionsAdd(req)
Signature
public Slack.ReactionsAddResponse reactionsAdd(Slack.ReactionsAddRequest req)
Parameters
req
Type: Slack.ReactionsAddRequest
Return Value
Type: Slack.ReactionsAddResponse
reactionsGet(req)
Signature
public Slack.ReactionsGetResponse reactionsGet(Slack.ReactionsGetRequest req)
Parameters
req
Type: Slack.ReactionsGetRequest
Return Value
Type: Slack.ReactionsGetResponse
reactionsList(req)
Signature
public Slack.ReactionsListResponse reactionsList(Slack.ReactionsListRequest req)
Parameters
req
Type: Slack.ReactionsListRequest
Return Value
Type: Slack.ReactionsListResponse
reactionsRemove(req)
Signature
public Slack.ReactionsRemoveResponse reactionsRemove(Slack.ReactionsRemoveRequest req)
Parameters
req
Type: Slack.ReactionsRemoveRequest
Return Value
Type: Slack.ReactionsRemoveResponse
starsAdd(req)
Signature
public Slack.StarsAddResponse starsAdd(Slack.StarsAddRequest req)
Parameters
req
Type: Slack.StarsAddRequest
Return Value
Type: Slack.StarsAddResponse
teamInfo(req)
Signature
public Slack.TeamInfoResponse teamInfo(Slack.TeamInfoRequest req)
Parameters
req
Type: Slack.TeamInfoRequest
Return Value
Type: Slack.TeamInfoResponse
teamProfileGet(req)
Signature
public Slack.TeamProfileGetResponse teamProfileGet(Slack.TeamProfileGetRequest req)
Parameters
req
Type: Slack.TeamProfileGetRequest
Return Value
Type: Slack.TeamProfileGetResponse
usergroupsCreate(req)
Signature
public Slack.UsergroupsCreateResponse usergroupsCreate(Slack.UsergroupsCreateRequest req)
Parameters
req
Type: Slack.UsergroupsCreateRequest
Return Value
Type: Slack.UsergroupsCreateResponse
usergroupsDisable(req)
Parameters
req
public Slack.UsergroupsDisableResponse usergroupsDisable(Slack.UsergroupsDisableRequest req)
Parameters
req
Type: Slack.UsergroupsDisableRequest
Return Value
Type: Slack.UsergroupsDisableResponse
usergroupsEnable(req)
Signature
public Slack.UsergroupsEnableResponse usergroupsEnable(Slack.UsergroupsEnableRequest req)
Parameters
req
Type: Slack.UsergroupsEnableRequest
Return Value
Type: Slack.UsergroupsEnableResponse
usergroupsList(req)
Signature
public Slack.UsergroupsListResponse usergroupsList(Slack.UsergroupsListRequest req)
Parameters
req
Type: Slack.UsergroupsListRequest
Return Value
Type: Slack.UsergroupsListResponse
usergroupsUpdate(req)
Signature
public Slack.UsergroupsUpdateResponse usergroupsUpdate(Slack.UsergroupsUpdateRequest req)
Parameters
req
Type: Slack.UsergroupsUpdateRequest
Return Value
Type: Slack.UsergroupsUpdateResponse
usergroupsUsersList(req)
Signature
public Slack.UsergroupsUsersListResponse usergroupsUsersList(Slack.UsergroupsUsersListRequest req)
Parameters
req
Type: Slack.UsergroupsUsersListRequest
Return Value
Type: Slack.UsergroupsUsersListResponse
usergroupsUsersUpdate(req)
Signature
public Slack.UsergroupsUsersUpdateResponse usergroupsUsersUpdate(Slack.UsergroupsUsersUpdateRequest req)
Parameters
req
Type: Slack.UsergroupsUsersUpdateRequest
Return Value
Type: Slack.UsergroupsUsersUpdateResponse
usersConversations(req)
Signature
public Slack.UsersConversationsResponse usersConversations(Slack.UsersConversationsRequest req)
Parameters
Type: Slack.UsersConversationsRequest
usersGetPresence(req)
Signature
public Slack.UsersGetPresenceResponse usersGetPresence(Slack.UsersGetPresenceRequest req)
Parameters
req
Type: Slack.UsersGetPresenceRequest
Return Value
Type: Slack.UsersGetPresenceResponse
usersInfo(req)
Signature
public Slack.UsersInfoResponse usersInfo(Slack.UsersInfoRequest req)
Return Value
Type: Slack.UsersInfoResponse
usersList(req)
Signature
public Slack.UsersListResponse usersList(Slack.UsersListRequest req)
Return Value
req
Type: Slack.UsersListRequest
usersLookupByEmail(req)
Signature
public Slack.UsersLookupByEmailResponse usersLookupByEmail(Slack.UsersLookupByEmailRequest req)
Parameters
req
Type: Slack.UsersLookupByEmailRequest
Return Value
Type: Slack.UsersLookupByEmailResponse
usersProfileGet(req)
Signature
public Slack.UsersProfileGetResponse usersProfileGet(Slack.UsersProfileGetRequest req)
Parameters
req
Type: Slack.UsersProfileGetRequest
Return Value
Type: Slack.UsersProfileGetResponse
usersSetActive(req)
Signature
public Slack.UsersSetActiveResponse usersSetActive(Slack.UsersSetActiveRequest req)
Parameters
req
Type: Slack.UsersSetActiveRequest
Return Value
Type: Slack.UsersSetActiveResponse
usersSetPresence(req)
Signature
public Slack.UsersSetPresenceResponse usersSetPresence(Slack.UsersSetPresenceRequest req)
Parameters
req
Type: Slack.UsersSetPresenceRequest
Return Value
Type: Slack.UsersSetPresenceResponse
viewsOpen(req)
Signature
public Slack.ViewsOpenResponse viewsOpen(Slack.ViewsOpenRequest req)
Parameters
req
Type: Slack.ViewsOpenRequest
Return Value
Type: Slack.ViewsOpenResponse
viewsPublish(req)
Signature
public Slack.ViewsPublishResponse viewsPublish(Slack.ViewsPublishRequest req)
Parameters
req
Type: Slack.ViewsPublishRequest
Return Value
Type: Slack.ViewsPublishResponse
viewsPush(req)
Signature
public Slack.ViewsPushResponse viewsPush(Slack.ViewsPushRequest req)
Parameters
req
Type: Slack.ViewsPushRequest
Return Value
Type: Slack.ViewsPushResponse
viewsUpdate(req)
Signature
public Slack.ViewsUpdateResponse viewsUpdate(Slack.ViewsUpdateRequest req)
Parameters
req
Type: Slack.ViewsUpdateRequest
Return Value
Type: Slack.ViewsUpdateResponse
workflowsStepCompleted(req)
Signature
public Slack.WorkflowsStepCompletedResponse workflowsStepCompleted(Slack.WorkflowsStepCompletedRequest req)
Parameters
req
Type: Slack.WorkflowsStepCompletedRequest
Return Value
Type: Slack.WorkflowsStepCompletedResponse
workflowsStepFailed(req)
Signature
public Slack.WorkflowsStepFailedResponse workflowsStepFailed(Slack.WorkflowsStepFailedRequest req)
Parameters
req
Type: Slack.WorkflowsStepFailedRequest
workflowsUpdateStep(req)
Signature
public Slack.WorkflowsUpdateStepResponse workflowsUpdateStep(Slack.WorkflowsUpdateStepRequest req)
Parameters
req
Type: Slack.WorkflowsUpdateStepRequest
Return Value
Type: Slack.WorkflowsUpdateStepResponse