357 lines
No EOL
18 KiB
TypeScript
357 lines
No EOL
18 KiB
TypeScript
import { ClaimsIdentity } from 'botframework-connector';
|
|
import { Activity, AttachmentData, ChannelAccount, ConversationParameters, ConversationResourceResponse, ConversationsResult, PagedMembersResult, ResourceResponse, Transcript } from 'botbuilder-core';
|
|
/**
|
|
* The ChannelServiceHandlerBase implements API to forward activity to a skill and
|
|
* implements routing ChannelAPI calls from the Skill up through the bot/adapter.
|
|
*/
|
|
export declare abstract class ChannelServiceHandlerBase {
|
|
/**
|
|
* Sends an [Activity](xref:botframework-schema.Activity) to the end of a conversation.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param activity The [Activity](xref:botframework-schema.Activity) to send.
|
|
* @returns A `Promise` representing the [ResourceResponse](xref:botframework-schema.ResourceResponse) for the operation.
|
|
*/
|
|
handleSendToConversation(authHeader: string, conversationId: string, activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* Sends a reply to an [Activity](xref:botframework-schema.Activity).
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param activityId The activity Id the reply is to.
|
|
* @param activity The [Activity](xref:botframework-schema.Activity) to send.
|
|
* @returns A `Promise` representing the [ResourceResponse](xref:botframework-schema.ResourceResponse) for the operation.
|
|
*/
|
|
handleReplyToActivity(authHeader: string, conversationId: string, activityId: string, activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* Edits a previously sent existing [Activity](xref:botframework-schema.Activity).
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param activityId The activity Id to update.
|
|
* @param activity The replacement [Activity](xref:botframework-schema.Activity).
|
|
* @returns A `Promise` representing the [ResourceResponse](xref:botframework-schema.ResourceResponse) for the operation.
|
|
*/
|
|
handleUpdateActivity(authHeader: string, conversationId: string, activityId: string, activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* Deletes an existing [Activity](xref:botframework-schema.Activity).
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param activityId The activity Id to delete.
|
|
*/
|
|
handleDeleteActivity(authHeader: string, conversationId: string, activityId: string): Promise<void>;
|
|
/**
|
|
* Enumerates the members of an [Activity](xref:botframework-schema.Activity).
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param activityId The activity Id.
|
|
* @returns The enumerated [ChannelAccount](xref:botframework-schema.ChannelAccount) list.
|
|
*/
|
|
handleGetActivityMembers(authHeader: string, conversationId: string, activityId: string): Promise<ChannelAccount[]>;
|
|
/**
|
|
* Creates a new Conversation.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param parameters [ConversationParameters](xref:botbuilder-core.ConversationParameters) to create the conversation from.
|
|
* @returns A `Promise` representation for the operation.
|
|
*/
|
|
handleCreateConversation(authHeader: string, parameters: ConversationParameters): Promise<ConversationResourceResponse>;
|
|
/**
|
|
* Lists the Conversations in which the bot has participated.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param continuationToken A skip or continuation token.
|
|
* @returns A `Promise` representation for the operation.
|
|
*/
|
|
handleGetConversations(authHeader: string, conversationId: string, continuationToken?: string): Promise<ConversationsResult>;
|
|
/**
|
|
* Enumerates the members of a conversation.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @returns The enumerated [ChannelAccount](xref:botframework-schema.ChannelAccount) list.
|
|
*/
|
|
handleGetConversationMembers(authHeader: string, conversationId: string): Promise<ChannelAccount[]>;
|
|
/**
|
|
* Gets the account of a single conversation member.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param userId The user Id.
|
|
* @param conversationId The conversation Id.
|
|
* @returns The [ChannelAccount](xref:botframework-schema.ChannelAccount) for the provided user id.
|
|
*/
|
|
handleGetConversationMember(authHeader: string, userId: string, conversationId: string): Promise<ChannelAccount>;
|
|
/**
|
|
* Enumerates the members of a conversation one page at a time.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param pageSize Suggested page size.
|
|
* @param continuationToken A continuation token.
|
|
* @returns A `Promise` representing the [PagedMembersResult](xref:botframework-schema.PagedMembersResult) for the operation.
|
|
*/
|
|
handleGetConversationPagedMembers(authHeader: string, conversationId: string, pageSize?: number, continuationToken?: string): Promise<PagedMembersResult>;
|
|
/**
|
|
* Deletes a member from a conversation.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param memberId Id of the member to delete from this conversation.
|
|
*/
|
|
handleDeleteConversationMember(authHeader: string, conversationId: string, memberId: string): Promise<void>;
|
|
/**
|
|
* Uploads the historic activities of the conversation.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param transcript [Transcript](xref:botframework-schema.Transcript) of activities.
|
|
* @returns A `Promise` representing the [ResourceResponse](xref:botframework-schema.ResourceResponse) for the operation.
|
|
*/
|
|
handleSendConversationHistory(authHeader: string, conversationId: string, transcript: Transcript): Promise<ResourceResponse>;
|
|
/**
|
|
* Stores data in a compliant store when dealing with enterprises.
|
|
*
|
|
* @param authHeader The authentication header.
|
|
* @param conversationId The conversation Id.
|
|
* @param attachmentUpload [AttachmentData](xref:botframework-schema.AttachmentData).
|
|
* @returns A `Promise` representing the [ResourceResponse](xref:botframework-schema.ResourceResponse) for the operation.
|
|
*/
|
|
handleUploadAttachment(authHeader: string, conversationId: string, attachmentUpload: AttachmentData): Promise<ResourceResponse>;
|
|
/**
|
|
* SendToConversation() API for Skill.
|
|
*
|
|
* @remarks
|
|
* This method allows you to send an activity to the end of a conversation.
|
|
* This is slightly different from ReplyToActivity().
|
|
* SendToConversation(conversationId) - will append the activity to the end
|
|
* of the conversation according to the timestamp or semantics of the channel.
|
|
* ReplyToActivity(conversationId,ActivityId) - adds the activity as a reply
|
|
* to another activity, if the channel supports it. If the channel does not
|
|
* support nested replies, ReplyToActivity falls back to SendToConversation.
|
|
*
|
|
* Use ReplyToActivity when replying to a specific activity in the
|
|
* conversation.
|
|
*
|
|
* Use SendToConversation in all other cases.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation identifier
|
|
* @param _activity Activity to send
|
|
*/
|
|
protected onSendToConversation(_claimsIdentity: ClaimsIdentity, _conversationId: string, _activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* ReplyToActivity() API for Skill.
|
|
*
|
|
* @remarks
|
|
* This method allows you to reply to an activity.
|
|
*
|
|
* This is slightly different from SendToConversation().
|
|
* SendToConversation(conversationId) - will append the activity to the end
|
|
* of the conversation according to the timestamp or semantics of the channel.
|
|
* ReplyToActivity(conversationId,ActivityId) - adds the activity as a reply
|
|
* to another activity, if the channel supports it. If the channel does not
|
|
* support nested replies, ReplyToActivity falls back to SendToConversation.
|
|
*
|
|
* Use ReplyToActivity when replying to a specific activity in the
|
|
* conversation.
|
|
*
|
|
* Use SendToConversation in all other cases.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _activityId activityId the reply is to (OPTIONAL).
|
|
* @param _activity Activity to send.
|
|
*/
|
|
protected onReplyToActivity(_claimsIdentity: ClaimsIdentity, _conversationId: string, _activityId: string, _activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* UpdateActivity() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Edit an existing activity.
|
|
*
|
|
* Some channels allow you to edit an existing activity to reflect the new
|
|
* state of a bot conversation.
|
|
*
|
|
* For example, you can remove buttons after someone has clicked "Approve" button.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _activityId activityId to update.
|
|
* @param _activity replacement Activity.
|
|
*/
|
|
protected onUpdateActivity(_claimsIdentity: ClaimsIdentity, _conversationId: string, _activityId: string, _activity: Activity): Promise<ResourceResponse>;
|
|
/**
|
|
* DeleteActivity() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Delete an existing activity.
|
|
*
|
|
* Some channels allow you to delete an existing activity, and if successful
|
|
* this method will remove the specified activity.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _activityId activityId to delete.
|
|
*/
|
|
protected onDeleteActivity(_claimsIdentity: ClaimsIdentity, _conversationId: string, _activityId: string): Promise<void>;
|
|
/**
|
|
* GetActivityMembers() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Enumerate the members of an activity.
|
|
*
|
|
* This REST API takes a ConversationId and a ActivityId, returning an array
|
|
* of ChannelAccount objects representing the members of the particular
|
|
* activity in the conversation.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _activityId Activity ID.
|
|
*/
|
|
protected onGetActivityMembers(_claimsIdentity: ClaimsIdentity, _conversationId: string, _activityId: string): Promise<ChannelAccount[]>;
|
|
/**
|
|
* CreateConversation() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Create a new Conversation.
|
|
*
|
|
* POST to this method with a
|
|
* Bot being the bot creating the conversation
|
|
* IsGroup set to true if this is not a direct message (default is false)
|
|
* Array containing the members to include in the conversation
|
|
*
|
|
* The return value is a ResourceResponse which contains a conversation id
|
|
* which is suitable for use in the message payload and REST API uris.
|
|
*
|
|
* Most channels only support the semantics of bots initiating a direct
|
|
* message conversation.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _parameters Parameters to create the conversation from.
|
|
*/
|
|
protected onCreateConversation(_claimsIdentity: ClaimsIdentity, _parameters: ConversationParameters): Promise<ConversationResourceResponse>;
|
|
/**
|
|
* onGetConversations() API for Skill.
|
|
*
|
|
* @remarks
|
|
* List the Conversations in which this bot has participated.
|
|
*
|
|
* GET from this method with a skip token
|
|
*
|
|
* The return value is a ConversationsResult, which contains an array of
|
|
* ConversationMembers and a skip token. If the skip token is not empty, then
|
|
* there are further values to be returned. Call this method again with the
|
|
* returned token to get more values.
|
|
*
|
|
* Each ConversationMembers object contains the ID of the conversation and an
|
|
* array of ChannelAccounts that describe the members of the conversation.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _continuationToken Skip or continuation token.
|
|
*/
|
|
protected onGetConversations(_claimsIdentity: ClaimsIdentity, _conversationId: string, _continuationToken?: string): Promise<ConversationsResult>;
|
|
/**
|
|
* getConversationMembers() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Enumerate the members of a conversation.
|
|
*
|
|
* This REST API takes a ConversationId and returns an array of ChannelAccount
|
|
* objects representing the members of the conversation.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
*/
|
|
protected onGetConversationMembers(_claimsIdentity: ClaimsIdentity, _conversationId: string): Promise<ChannelAccount[]>;
|
|
/**
|
|
* getConversationMember() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Get the account of a single conversation member.
|
|
*
|
|
* This REST API takes a ConversationId and UserId and returns the ChannelAccount
|
|
* object representing the member of the conversation.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _userId User ID.
|
|
* @param _conversationId Conversation ID.
|
|
*/
|
|
protected onGetConversationMember(_claimsIdentity: ClaimsIdentity, _userId: string, _conversationId: string): Promise<ChannelAccount>;
|
|
/**
|
|
* getConversationPagedMembers() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Enumerate the members of a conversation one page at a time.
|
|
*
|
|
* This REST API takes a ConversationId. Optionally a pageSize and/or
|
|
* continuationToken can be provided. It returns a PagedMembersResult, which
|
|
* contains an array
|
|
* of ChannelAccounts representing the members of the conversation and a
|
|
* continuation token that can be used to get more values.
|
|
*
|
|
* One page of ChannelAccounts records are returned with each call. The number
|
|
* of records in a page may vary between channels and calls. The pageSize
|
|
* parameter can be used as
|
|
* a suggestion. If there are no additional results the response will not
|
|
* contain a continuation token. If there are no members in the conversation
|
|
* the Members will be empty or not present in the response.
|
|
*
|
|
* A response to a request that has a continuation token from a prior request
|
|
* may rarely return members from a previous request.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _pageSize Suggested page size.
|
|
* @param _continuationToken Continuation Token.
|
|
*/
|
|
protected onGetConversationPagedMembers(_claimsIdentity: ClaimsIdentity, _conversationId: string, _pageSize?: number, _continuationToken?: string): Promise<PagedMembersResult>;
|
|
/**
|
|
* DeleteConversationMember() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Deletes a member from a conversation.
|
|
*
|
|
* This REST API takes a ConversationId and a memberId (of type string) and
|
|
* removes that member from the conversation. If that member was the last member
|
|
* of the conversation, the conversation will also be deleted.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _memberId ID of the member to delete from this conversation.
|
|
*/
|
|
protected onDeleteConversationMember(_claimsIdentity: ClaimsIdentity, _conversationId: string, _memberId: string): Promise<void>;
|
|
/**
|
|
* SendConversationHistory() API for Skill.
|
|
*
|
|
* @remarks
|
|
* This method allows you to upload the historic activities to the
|
|
* conversation.
|
|
*
|
|
* Sender must ensure that the historic activities have unique ids and
|
|
* appropriate timestamps. The ids are used by the client to deal with
|
|
* duplicate activities and the timestamps are used by the client to render
|
|
* the activities in the right order.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _transcript Transcript of activities.
|
|
*/
|
|
protected onSendConversationHistory(_claimsIdentity: ClaimsIdentity, _conversationId: string, _transcript: Transcript): Promise<ResourceResponse>;
|
|
/**
|
|
* UploadAttachment() API for Skill.
|
|
*
|
|
* @remarks
|
|
* Upload an attachment directly into a channel's blob storage.
|
|
*
|
|
* This is useful because it allows you to store data in a compliant store
|
|
* when dealing with enterprises.
|
|
*
|
|
* The response is a ResourceResponse which contains an AttachmentId which is
|
|
* suitable for using with the attachments API.
|
|
* @param _claimsIdentity ClaimsIdentity for the bot, should have AudienceClaim, AppIdClaim and ServiceUrlClaim.
|
|
* @param _conversationId Conversation ID.
|
|
* @param _attachmentUpload Attachment data.
|
|
*/
|
|
protected onUploadAttachment(_claimsIdentity: ClaimsIdentity, _conversationId: string, _attachmentUpload: AttachmentData): Promise<ResourceResponse>;
|
|
/**
|
|
* Helper to authenticate the header token and extract the claims.
|
|
*
|
|
* @param authHeader HTTP authorization header
|
|
* @returns a promise resolving to the authorization header claims
|
|
*/
|
|
protected abstract authenticate(authHeader: string): Promise<ClaimsIdentity>;
|
|
}
|
|
//# sourceMappingURL=channelServiceHandlerBase.d.ts.map
|