BotFrameworkAdapter class

警告

现已弃用此 API。

Use CloudAdapter instead.

扩展

BotAdapter

构造函数

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

创建 BotFrameworkAdapter 类的新实例。

属性

isStreamingConnectionOpen

在流式处理上下文中使用,检查流式处理连接是否仍在打开,以便机器人发送活动。

TokenApiClientCredentialsKey

继承属性

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

方法

continueConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

continueConversation(Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

createConnectorClient(string)

创建连接器客户端。

createConnectorClientWithIdentity(string, ClaimsIdentity)

使用 ClaimsIdentity 创建 ConnectorClient。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

使用 ClaimsIdentity 和显式受众创建 ConnectorClient。

createConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步创建并启动与频道用户的对话。

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

异步创建并启动与频道用户的对话。

deleteActivity(TurnContext, Partial<ConversationReference>)

异步删除现有活动。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.deleteActivity 从机器人代码中删除活动。

deleteConversationMember(TurnContext, string)

从当前对话中异步删除成员。

emulateOAuthCards(TurnContext | string, boolean)

异步发送通道的模拟 OAuth 卡。 此方法支持框架,不打算直接为代码调用。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

异步执行令牌交换操作,例如单一登录。

getAadTokens(TurnContext, string, string[])

从令牌服务器异步注销用户。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)
getActivityMembers(TurnContext, string)

异步列出给定活动的成员。

getConversationMembers(TurnContext)

异步列出当前对话的成员。

getConversations(TurnContext | string, string)

对于指定的通道,异步获取此机器人参与的对话的页面。

getSignInLink(TurnContext, string, AppCredentials, string, string)

从令牌服务器异步获取登录链接,该链接可以作为 SigninCard的一部分发送。

getSignInLink(TurnContext, string, CoreAppCredentials, string, string)
getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

异步获取要发送给用户进行登录的原始登录资源。

getTokenStatus(TurnContext, string, string)

异步检索给定用户的每个已配置连接的令牌状态。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)
getUserToken(TurnContext, string, string)

异步尝试检索登录流中的用户的令牌。

getUserToken(TurnContext, string, string, CoreAppCredentials)
process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

通过将逻辑函数应用于每个流式处理请求来处理 Web 套接字连接。

process(Request, Response, (context: TurnContext) => Promise<void>)

通过应用逻辑函数来处理 Web 请求。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

异步创建轮次上下文并运行传入活动的中间件管道。

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

异步创建轮次上下文并运行传入活动的中间件管道。

processRequest(IReceiveRequest)

检查请求的有效性,并尝试将其映射到正确的虚拟终结点,然后生成并返回响应(如果适用)。

sendActivities(TurnContext, Partial<Activity>[])

异步将一组传出活动发送到通道服务器。 此方法支持框架,不打算直接为代码调用。 使用轮次上下文的 sendActivity 或从机器人代码 sendActivities 方法。

signOutUser(TurnContext, string, string)

从令牌服务器异步注销用户。

signOutUser(TurnContext, string, string, CoreAppCredentials)
updateActivity(TurnContext, Partial<Activity>)

以异步方式将以前的活动替换为更新的版本。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.updateActivity 从机器人代码更新活动。

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

将处理程序连接到命名管道服务器并开始侦听传入请求。

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

处理初始请求,以通过流式处理服务器建立长期连接。

继承的方法

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

在指定的通道上创建对话。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

将中间件添加到适配器的管道。

构造函数详细信息

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

创建 BotFrameworkAdapter 类的新实例。

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

参数

settings

Partial<BotFrameworkAdapterSettings>

自选。 用于此适配器实例的设置。

注解

如果 settings 参数不包含 channelServiceopenIdMetadata 值,则构造函数会检查进程的环境变量是否包含这些值。 在 Azure 上预配机器人时,如果要求机器人在全局云或国家云中正常工作,可以设置这些值。

BotFrameworkAdapterSettings 类定义可用的适配器设置。

属性详细信息

isStreamingConnectionOpen

在流式处理上下文中使用,检查流式处理连接是否仍在打开,以便机器人发送活动。

boolean isStreamingConnectionOpen

属性值

boolean

如果流式处理连接处于打开状态,则为 True,否则为 false。

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

属性值

symbol

继承属性详细信息

BotIdentityKey

BotIdentityKey: symbol

属性值

symbol

继承自 BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

属性值

symbol

继承自 BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

属性值

symbol

继承自 BotAdapter.OAuthScopeKey

onTurnError

onTurnError: (context: TurnContext, error: Error) => Promise<void>

属性值

(context: TurnContext, error: Error) => Promise<void>

继承自 BotAdapter.onTurnError

方法详细信息

continueConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

function continueConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

reference

Partial<ConversationReference>

要继续的对对话的引用。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

注解

这通常称为 主动通知,机器人可以主动向会话或用户发送消息,而无需等待传入消息。 例如,机器人可以使用此方法向用户发送通知或优惠券。

发送主动消息:

  1. 从传入活动保存 ConversationReference 的副本。 例如,可以将会话引用存储在数据库中。
  2. 调用此方法以在以后恢复对话。 使用保存的引用访问对话。
  3. 成功后,适配器将生成 TurnContext 对象并调用 logic 函数处理程序。 使用 logic 函数发送主动消息。

若要从会话中的任何传入活动复制引用,请使用 TurnContext.getConversationReference 方法。

此方法类似于 processActivity 方法。 适配器创建一个 TurnContext,并在调用 logic 处理程序之前通过中间件路由它。 创建的活动将具有“event”的 类型,以及“continueConversation”的 名称

例如:

server.post('/api/notifyUser', async (req, res) => {
   // Lookup previously saved conversation reference.
   const reference = await findReference(req.body.refId);

   // Proactively notify the user.
   if (reference) {
      await adapter.continueConversation(reference, async (context) => {
         await context.sendActivity(req.body.message);
      });
      res.send(200);
   } else {
      res.send(404);
   }
});

continueConversation(Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

function continueConversation(reference: Partial<ConversationReference>, oAuthScope: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

reference

Partial<ConversationReference>

(xref:botframework-schema。要继续的对话的 ConversationReference。

oAuthScope

string

要继续对话的任何已发送活动或函数的预期接收方。

logic

(context: TurnContext) => Promise<void>

自选。 在适配器中间件运行后调用的异步方法。

返回

Promise<void>

createConnectorClient(string)

创建连接器客户端。

function createConnectorClient(serviceUrl: string): ConnectorClient

参数

serviceUrl

string

客户端的服务 URL。

返回

ConnectorClient

ConnectorClient 实例。

注解

重写派生类中的此项,以创建用于单元测试的模拟连接器客户端。

createConnectorClientWithIdentity(string, ClaimsIdentity)

使用 ClaimsIdentity 创建 ConnectorClient。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity): Promise<ConnectorClient>

参数

serviceUrl

string

客户端的服务 URL。

identity

ClaimsIdentity

ClaimsIdentity

返回

Promise<ConnectorClient>

注解

如果 ClaimsIdentity 包含 Skills 请求的声明,请创建用于 Skills 的 ConnectorClient。 从 ClaimsIdentity 或实例的凭据属性派生正确的受众。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

使用 ClaimsIdentity 和显式受众创建 ConnectorClient。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity, audience: string): Promise<ConnectorClient>

参数

serviceUrl

string

客户端的服务 URL。

identity

ClaimsIdentity

ClaimsIdentity

audience

string

ConnectorClient 消息的收件人。 通常为 Bot Framework 通道服务或其他机器人的 AppId。

返回

Promise<ConnectorClient>

注解

如果剪裁的受众不是非零长度字符串,则访问群体将从 ClaimsIdentity 或实例的凭据属性派生。

createConversation(Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步创建并启动与频道用户的对话。

function createConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

reference

Partial<ConversationReference>

要创建的聊天的参考。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

异步创建并启动与频道用户的对话。

function createConversation(reference: Partial<ConversationReference>, parameters: Partial<ConversationParameters>, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

reference

Partial<ConversationReference>

要创建的聊天的参考。

parameters

Partial<ConversationParameters>

创建会话时使用的参数

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

deleteActivity(TurnContext, Partial<ConversationReference>)

异步删除现有活动。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.deleteActivity 从机器人代码中删除活动。

function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>

参数

context

TurnContext

轮次的上下文对象。

reference

Partial<ConversationReference>

要删除的活动的对话参考信息。

返回

Promise<void>

注解

并非所有通道都支持此操作。 对于未调用的通道,此调用可能会引发异常。

deleteConversationMember(TurnContext, string)

从当前对话中异步删除成员。

function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>

参数

context

TurnContext

轮次的上下文对象。

memberId

string

要从对话中删除的成员的 ID。

返回

Promise<void>

注解

从对话中删除成员的标识信息。

并非所有通道都支持此操作。 对于未调用的通道,此调用可能会引发异常。

emulateOAuthCards(TurnContext | string, boolean)

异步发送通道的模拟 OAuth 卡。 此方法支持框架,不打算直接为代码调用。

function emulateOAuthCards(contextOrServiceUrl: TurnContext | string, emulate: boolean): Promise<void>

参数

contextOrServiceUrl

TurnContext | string

模拟器的 URL。

emulate

boolean

true 将模拟的 OAuth 卡发送到模拟器;或 false 不发送卡。

返回

Promise<void>

注解

在 Bot Framework Emulator 中测试机器人时,此方法可以模拟 OAuth 卡交互。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

异步执行令牌交换操作,例如单一登录。

function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest, appCredentials?: CoreAppCredentials): Promise<TokenResponse>

参数

context

TurnContext

与用户的当前会话轮次的上下文。

connectionName

string

要使用的身份验证连接的名称。

userId

string

将与令牌关联的用户 ID。

tokenExchangeRequest

TokenExchangeRequest

交换请求详细信息,可以是要交换的令牌,要么是交换的 URI。

appCredentials

CoreAppCredentials

自选。 OAuth 的 CoreAppCredentials。

返回

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

从令牌服务器异步注销用户。

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[]): Promise<[key: string]: TokenResponse>

参数

context

TurnContext

轮次的上下文对象。

connectionName

string

要使用的身份验证连接的名称。

resourceUrls

string[]

要为其检索令牌的资源 URL 列表。

返回

Promise<[key: string]: TokenResponse>

按资源 URL 对象的 TokenResponse 映射。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[], oAuthAppCredentials?: CoreAppCredentials): Promise<[key: string]: TokenResponse>

参数

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

返回

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

异步列出给定活动的成员。

function getActivityMembers(context: TurnContext, activityId?: string): Promise<ChannelAccount[]>

参数

context

TurnContext

轮次的上下文对象。

activityId

string

自选。 要获取其成员的活动 ID。 如果未指定,则使用当前活动 ID。

返回

Promise<ChannelAccount[]>

ChannelAccount 的数组 给定活动中涉及的用户的对象。

注解

为参与给定活动的用户返回 ChannelAccount 对象的数组。

这不同于 getConversationMembers,因为它将仅返回直接参与活动的用户,而不是对话的所有成员。

getConversationMembers(TurnContext)

异步列出当前对话的成员。

function getConversationMembers(context: TurnContext): Promise<ChannelAccount[]>

参数

context

TurnContext

轮次的上下文对象。

返回

Promise<ChannelAccount[]>

ChannelAccount 对象数组,用于当前参与会话的所有用户。

注解

为当前参与会话的所有用户返回 ChannelAccount 对象的数组。

这不同于 getActivityMembers,因为它将返回对话的所有成员,而不仅仅是直接参与特定活动的成员。

getConversations(TurnContext | string, string)

对于指定的通道,异步获取此机器人参与的对话的页面。

function getConversations(contextOrServiceUrl: TurnContext | string, continuationToken?: string): Promise<ConversationsResult>

参数

contextOrServiceUrl

TurnContext | string

要从通道上的会话中查询或 TurnContext 对象的通道服务器的 URL。

continuationToken

string

自选。 结果上一页的延续标记。 省略此参数或使用 undefined 检索结果的第一页。

返回

Promise<ConversationsResult>

ConversationsResult 对象,该对象包含结果页和延续标记。

注解

返回值的 对话 属性包含 ConversationMembers 对象的页。 每个对象的 ID 是机器人在此频道中参与的对话的 ID。 可以从聊天上下文外部调用此方法,因为只需要机器人的服务 URL 和凭据。

通道批处理结果为页面。 如果结果的 continuationToken 属性不为空,则有更多页面需要获取。 使用返回的令牌获取下一页的结果。 如果 contextOrServiceUrl 参数是 TurnContext,则从 contextOrServiceUrl检索通道服务器的 URL。活动serviceUrl

从令牌服务器异步获取登录链接,该链接可以作为 SigninCard的一部分发送。

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: AppCredentials, userId?: string, finalRedirect?: string): Promise<string>

参数

context

TurnContext

轮次的上下文对象。

connectionName

string

要使用的身份验证连接的名称。

oAuthAppCredentials

AppCredentials

适用于 OAuth 的 AppCredentials。

userId

string

将与令牌关联的用户 ID。

finalRedirect

string

OAuth 流将重定向到的最终 URL。

返回

Promise<string>

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: CoreAppCredentials, userId?: string, finalRedirect?: string): Promise<string>

参数

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

返回

Promise<string>

getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

异步获取要发送给用户进行登录的原始登录资源。

function getSignInResource(context: TurnContext, connectionName: string, userId?: string, finalRedirect?: string, appCredentials?: CoreAppCredentials): Promise<SignInUrlResponse>

参数

context

TurnContext

轮次的上下文对象。

connectionName

string

要使用的身份验证连接的名称。

userId

string

将与令牌关联的用户 ID。

finalRedirect

string

OAuth 流将重定向到的最终 URL。

appCredentials

CoreAppCredentials

自选。 OAuth 的 CoreAppCredentials。

返回

Promise<SignInUrlResponse>

BotSignInGetSignInResourceResponse 对象。

getTokenStatus(TurnContext, string, string)

异步检索给定用户的每个已配置连接的令牌状态。

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>

参数

context

TurnContext

轮次的上下文对象。

userId

string

自选。 如果存在,则检索其令牌状态的用户的 ID。 否则,将使用发送当前活动的用户的 ID。

includeFilter

string

自选。 要包含的连接的逗号分隔列表。 如果存在,则 includeFilter 参数会限制此方法返回的标记。

返回

Promise<TokenStatus[]>

检索到的 TokenStatus 对象。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenStatus[]>

参数

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

返回

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

异步尝试检索登录流中的用户的令牌。

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>

参数

context

TurnContext

轮次的上下文对象。

connectionName

string

要使用的身份验证连接的名称。

magicCode

string

自选。 用户输入的验证代码。

返回

Promise<TokenResponse>

包含用户令牌的 TokenResponse 对象。

getUserToken(TurnContext, string, string, CoreAppCredentials)

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenResponse>

参数

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

返回

Promise<TokenResponse>

process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

通过将逻辑函数应用于每个流式处理请求来处理 Web 套接字连接。

function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

req
Request

传入的 HTTP 请求

socket

INodeSocket

相应的 INodeSocket

head

INodeBuffer

相应的 INodeBuffer

logic

(context: TurnContext) => Promise<void>

要应用的逻辑函数

返回

Promise<void>

表示异步操作的 promise。

process(Request, Response, (context: TurnContext) => Promise<void>)

通过应用逻辑函数来处理 Web 请求。

function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

req
Request

传入的 HTTP 请求

res
Response

相应的 HTTP 响应

logic

(context: TurnContext) => Promise<void>

要应用的逻辑函数

返回

Promise<void>

表示异步操作的 promise。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

异步创建轮次上下文并运行传入活动的中间件管道。

function processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>

参数

req
WebRequest

Express 或 Restify 样式请求对象。

res
WebResponse

Express 或 Restify 样式响应对象。

logic

(context: TurnContext) => Promise<any>

在中间件管道末尾调用的函数。

返回

Promise<void>

注解

这是机器人接收传入消息并定义会话中的轮次的主要方式。 此方法:

  1. 分析和验证传入请求。
    • 活动从传入请求的正文中读取。 如果无法分析活动,将返回错误。
    • 发送方的标识使用机器人的 appIdappPassword作为模拟器或有效的Microsoft服务器进行身份验证。 如果未验证发件人的身份,请求将被拒绝。
  2. 为接收的活动创建 TurnContext 对象。
    • 此对象用可吊销代理 包装
    • 此方法完成后,将撤销代理。
  3. 通过适配器的中间件管道发送轮次上下文。
  4. 将轮次上下文发送到 logic 函数。
    • 机器人此时可能会执行其他路由或处理。 返回承诺(或提供 async 处理程序)将导致适配器等待任何异步操作完成。
    • logic 函数完成后,将解析中间件设置的承诺链。

提示

如果在机器人的控制台输出中看到错误 TypeError: Cannot perform 'set' on a proxy that has been revoked,则可能原因是在不使用 await 关键字的情况下使用了异步函数。 确保所有异步函数都使用 await!

中间件 轮次 短路。 发生这种情况时,不会调用后续中间件和 logic 函数;但是,在此点之前的所有中间件仍运行到完成。 有关中间件管道的详细信息,请参阅 机器人如何工作中间件 文章。 使用适配器 使用 方法将中间件添加到适配器。

例如:

server.post('/api/messages', (req, res) => {
   // Route received request to adapter for processing
   adapter.processActivity(req, res, async (context) => {
       // Process any messages received
       if (context.activity.type === ActivityTypes.Message) {
           await context.sendActivity(`Hello World`);
       }
   });
});

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

异步创建轮次上下文并运行传入活动的中间件管道。

function processActivityDirect(activity: Activity, logic: (context: TurnContext) => Promise<any>): Promise<void>

参数

activity

Activity

要处理的活动。

logic

(context: TurnContext) => Promise<any>

在中间件管道末尾调用的函数。

返回

Promise<void>

注解

这是机器人接收传入消息并定义会话中的轮次的主要方式。 此方法:

  1. 为接收的活动创建 TurnContext 对象。
    • 此对象用可吊销代理 包装
    • 此方法完成后,将撤销代理。
  2. 通过适配器的中间件管道发送轮次上下文。
  3. 将轮次上下文发送到 logic 函数。
    • 机器人此时可能会执行其他路由或处理。 返回承诺(或提供 async 处理程序)将导致适配器等待任何异步操作完成。
    • logic 函数完成后,将解析中间件设置的承诺链。

中间件 轮次 短路。 发生这种情况时,不会调用后续中间件和 logic 函数;但是,在此点之前的所有中间件仍运行到完成。 有关中间件管道的详细信息,请参阅 机器人如何工作中间件 文章。 使用适配器 使用 方法将中间件添加到适配器。

processRequest(IReceiveRequest)

检查请求的有效性,并尝试将其映射到正确的虚拟终结点,然后生成并返回响应(如果适用)。

function processRequest(request: IReceiveRequest): Promise<StreamingResponse>

参数

request

IReceiveRequest

连接的通道中的 ReceiveRequest。

返回

Promise<StreamingResponse>

BotAdapter 创建的响应将发送到发起请求的客户端。

sendActivities(TurnContext, Partial<Activity>[])

异步将一组传出活动发送到通道服务器。 此方法支持框架,不打算直接为代码调用。 使用轮次上下文的 sendActivity 或从机器人代码 sendActivities 方法。

function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>

参数

context

TurnContext

轮次的上下文对象。

activities

Partial<Activity>[]

要发送的活动。

返回

Promise<ResourceResponse[]>

ResourceResponse 数组

注解

活动将按接收顺序逐个发送。 将为每个发送的活动返回响应对象。 对于 message 活动,这将包含传递的消息的 ID。

signOutUser(TurnContext, string, string)

从令牌服务器异步注销用户。

function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>

参数

context

TurnContext

轮次的上下文对象。

connectionName

string

要使用的身份验证连接的名称。

userId

string

要注销的用户的 ID。

返回

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

function signOutUser(context: TurnContext, connectionName?: string, userId?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<void>

参数

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

返回

Promise<void>

updateActivity(TurnContext, Partial<Activity>)

以异步方式将以前的活动替换为更新的版本。 此接口支持框架,不应直接为代码调用。 使用 TurnContext.updateActivity 从机器人代码更新活动。

function updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>

参数

context

TurnContext

轮次的上下文对象。

activity

Partial<Activity>

要替换的活动的更新版本。

返回

Promise<ResourceResponse | void>

表示操作的 ResourceResponsePromise

注解

并非所有通道都支持此操作。 对于未调用的通道,此调用可能会引发异常。

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

将处理程序连接到命名管道服务器并开始侦听传入请求。

function useNamedPipe(logic: (context: TurnContext) => Promise<any>, pipeName?: string, retryCount?: number, onListen?: () => void): Promise<void>

参数

logic

(context: TurnContext) => Promise<any>

将处理传入请求的逻辑。

pipeName

string

创建服务器时要使用的命名管道的名称。

retryCount

number

尝试绑定传入和传出管道的次数

onListen

() => void

当服务器同时侦听传入管道和传出管道时触发一次的可选回调

返回

Promise<void>

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

处理初始请求,以通过流式处理服务器建立长期连接。

function useWebSocket(req: WebRequest, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<any>): Promise<void>

参数

req
WebRequest

连接请求。

socket

INodeSocket

机器人(服务器)和通道/调用方(客户端)之间的原始套接字连接。

head

INodeBuffer

升级后的流的第一个数据包。

logic

(context: TurnContext) => Promise<any>

处理 WebSocket 连接的生存期传入流式处理请求的逻辑。

返回

Promise<void>

继承的方法详细信息

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

claimsIdentity

ClaimsIdentity

会话 ClaimsIdentity

reference

Partial<ConversationReference>

对话 部分 对话继续。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

继承自 BotAdapter.continueConversationAsync

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

claimsIdentity

ClaimsIdentity

会话 ClaimsIdentity

reference

Partial<ConversationReference>

对话 部分 对话继续。

audience

string

表示主动消息收件人的值。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

继承自 BotAdapter.continueConversationAsync

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

异步恢复与用户的对话,可能经过一段时间之后。

function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

botAppId

string

机器人的应用程序 ID。 在适配器(控制台、测试等)的单租户中忽略此参数,但对于多租户感知的 BotFrameworkAdapter 至关重要。

reference

Partial<ConversationReference>

对话 部分 对话继续。

logic

(context: TurnContext) => Promise<void>

在适配器中间件运行后调用的异步方法。

返回

Promise<void>

表示异步操作的 promise

继承自 BotAdapter.continueConversationAsync

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

在指定的通道上创建对话。

function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>

参数

_botAppId

string

机器人的应用程序 ID。

_channelId

string

通道的 ID。

_serviceUrl

string

通道的 ID。

_audience

string

连接器的受众。

_conversationParameters

ConversationParameters

用于创建对话的对话信息

_logic

(context: TurnContext) => Promise<void>

调用生成的机器人轮次的方法。

返回

Promise<void>

表示异步操作的承诺

注解

若要开始对话,机器人必须知道其帐户信息和该通道上的用户帐户信息。 大多数_channels仅支持启动直接消息(非组)对话。

适配器尝试在通道上创建新会话,然后通过其中间件管道向逻辑方法发送 conversationUpdate 活动。

如果与指定用户建立对话,活动的会话 ID 将包含新会话的 ID。

继承自 BotAdapter.createConversationAsync

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

将中间件添加到适配器的管道。

function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this

参数

middlewares

(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]

要添加的中间件或中间件处理程序。

返回

this

更新的适配器对象。

注解

中间件在初始化时添加到适配器。 每个轮次,适配器都会按照添加中间件的顺序调用其中间件。

继承自 BotAdapter.use