BotFrameworkAdapter 类

实现

public class BotFrameworkAdapter
extends BotAdapter
implements AdapterIntegration, UserTokenProvider, ConnectorClientBuilder

可将机器人连接到服务终结点的机器人适配器。 机器人适配器封装了身份验证过程,并将活动发送到机器人连接器服务并从机器人连接器服务接收活动。 当机器人收到活动时,适配器会创建上下文对象,将其传递给机器人的应用程序逻辑,并将响应发送回用户的通道。

使用 use(Middleware middleware) 将对象添加到 Middleware adapter\u2019s 中间件集合。 适配器通过机器人中间件管道处理传入的活动并将其定向到 bot\u2019s 逻辑,然后再次退出。 当每个活动流入和流出机器人时,每个中间件都可以在机器人逻辑运行前后对其进行检查或执行操作。

TurnContext Activity Bot Middleware

字段摘要

修饰符和类型 字段和描述
static final java.lang.String CONNECTOR_CLIENT_KEY

用于存储连接器客户端的密钥。

static final java.lang.String INVOKE_RESPONSE_KEY

用于存储调用响应的密钥。

static final java.lang.String TEAMSCONNECTOR_CLIENT_KEY

用于存储 Teams连接器客户端的密钥。

构造函数摘要

构造函数 说明
BotFrameworkAdapter(AppCredentials withCredentials, AuthenticationConfiguration withAuthConfig, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

BotFrameworkAdapter(CredentialProvider withCredentialProvider)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

BotFrameworkAdapter(CredentialProvider withCredentialProvider, AuthenticationConfiguration withAuthConfig, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

BotFrameworkAdapter(CredentialProvider withCredentialProvider, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

方法摘要

修饰符和类型 方法和描述
protected void addConnectorClientToCache(String serviceUrl, String appId, String scope, ConnectorClient client)

将连接器客户端插入缓存中。

protected

java.util.concurrent.CompletableFuture<AppCredentials>

buildAppCredentials(String appId, String scope)

为指定的应用ID 和范围创建应用凭据对象。

java.util.concurrent.CompletableFuture<java.lang.Void>

continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, BotCallbackHandler callback)

向对话发送主动消息。

java.util.concurrent.CompletableFuture<java.lang.Void>

continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, String audience, BotCallbackHandler callback)

向对话发送主动消息。

java.util.concurrent.CompletableFuture<java.lang.Void>

continueConversation(String botAppId, ConversationReference reference, BotCallbackHandler callback)

将主动消息从机器人发送到聊天。

java.util.concurrent.CompletableFuture<ConnectorClient>

createConnectorClient(String serviceUrl, ClaimsIdentity claimsIdentity, String audience)

异步创建连接器客户端。

java.util.concurrent.CompletableFuture<java.lang.Void>

createConversation(String channelId, String serviceUrl, MicrosoftAppCredentials credentials, ConversationParameters conversationParameters, BotCallbackHandler callback)

在指定通道上创建对话。

java.util.concurrent.CompletableFuture<java.lang.Void>

createConversation(String channelId, String serviceUrl, MicrosoftAppCredentials credentials, ConversationParameters conversationParameters, BotCallbackHandler callback, ConversationReference reference)

在指定通道上创建对话。

protected

java.util.concurrent.CompletableFuture<OAuthClient>

createOAuthAPIClient(TurnContext turnContext, AppCredentials oAuthAppCredentials)

为机器人创建 OAuth 客户端。

java.util.concurrent.CompletableFuture<java.lang.Void>

deleteActivity(TurnContext context, ConversationReference reference)

删除对话中的现有活动。

java.util.concurrent.CompletableFuture<java.lang.Void>

deleteConversationMember(TurnContextImpl context, String memberId)

从当前对话中删除成员。

java.util.concurrent.CompletableFuture<TokenResponse>

exchangeToken(TurnContext turnContext, AppCredentials oAuthAppCredentials, String connectionName, String userId, TokenExchangeRequest exchangeRequest)

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

java.util.concurrent.CompletableFuture<TokenResponse>

exchangeToken(TurnContext turnContext, String connectionName, String userId, TokenExchangeRequest exchangeRequest)

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

java.util.concurrent.CompletableFuture<java.util.Map<java.lang.String,TokenResponse>>

getAadTokens(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String[] resourceUrls, String userId)

使用自定义的应用凭据检索配置连接上特定资源的 Azure Active Directory 令牌。

java.util.concurrent.CompletableFuture<java.util.Map<java.lang.String,TokenResponse>>

getAadTokens(TurnContext context, String connectionName, String[] resourceUrls, String userId)

检索已配置连接上特定资源的 Azure Active Directory 令牌。

java.util.concurrent.CompletableFuture<java.util.List<ChannelAccount>>

getActivityMembers(TurnContextImpl context)

列出给定活动的成员。

java.util.concurrent.CompletableFuture<java.util.List<ChannelAccount>>

getActivityMembers(TurnContextImpl context, String activityId)

列出给定活动的成员。

protected

java.util.Map<java.lang.String,ConnectorClient>

getConnectorClientCache()

获取连接器客户端缓存。

java.util.concurrent.CompletableFuture<java.util.List<ChannelAccount>>

getConversationMembers(TurnContextImpl context)

列出当前对话的成员。

java.util.concurrent.CompletableFuture<ConversationsResult>

getConversations(TurnContextImpl context)

列出此机器人为给定通道服务器参与的对话。

java.util.concurrent.CompletableFuture<ConversationsResult>

getConversations(TurnContextImpl context, String continuationToken)

列出此机器人为给定通道服务器参与的对话。

java.util.concurrent.CompletableFuture<ConversationsResult>

getConversations(String serviceUrl, MicrosoftAppCredentials credentials)

列出此机器人为给定通道服务器参与的对话。

java.util.concurrent.CompletableFuture<ConversationsResult>

getConversations(String serviceUrl, MicrosoftAppCredentials credentials, String continuationToken)

列出此机器人为给定通道服务器参与的对话。

protected

java.util.Map<java.lang.String,AppCredentials>

getCredentialsCache()

获取应用凭据缓存。

java.util.concurrent.CompletableFuture<java.lang.String>

getOAuthSignInLink(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName)

使用自定义的应用凭据获取要发送给用户以登录的连接名称的原始登录链接。

java.util.concurrent.CompletableFuture<java.lang.String>

getOAuthSignInLink(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId, String finalRedirect)

使用机器人的应用凭据获取要发送给用户的原始登录链接,以便用户登录连接名称。

java.util.concurrent.CompletableFuture<java.lang.String>

getOAuthSignInLink(TurnContext context, String connectionName)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

java.util.concurrent.CompletableFuture<java.lang.String>

getOAuthSignInLink(TurnContext context, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

protected

java.util.concurrent.CompletableFuture<ConnectorClient>

getOrCreateConnectorClient(String serviceUrl, AppCredentials usingAppCredentials)

从缓存或新创建的连接器客户端返回。

java.util.concurrent.CompletableFuture<SignInResource>

getSignInResource(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

java.util.concurrent.CompletableFuture<SignInResource>

getSignInResource(TurnContext turnContext, String connectionName)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

java.util.concurrent.CompletableFuture<SignInResource>

getSignInResource(TurnContext turnContext, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

java.util.concurrent.CompletableFuture<java.util.List<TokenStatus>>

getTokenStatus(TurnContext context, AppCredentials oAuthAppCredentials, String userId, String includeFilter)

使用自定义的应用凭据检索给定用户的每个已配置连接的令牌状态。

java.util.concurrent.CompletableFuture<java.util.List<TokenStatus>>

getTokenStatus(TurnContext context, String userId, String includeFilter)

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

java.util.concurrent.CompletableFuture<TokenResponse>

getUserToken(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String magicCode)

尝试使用自定义的应用凭据检索登录流中的用户的令牌。

java.util.concurrent.CompletableFuture<TokenResponse>

getUserToken(TurnContext context, String connectionName, String magicCode)

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

protected static java.lang.String keyForAppCredentials(String appId, String scope)

生成用于访问应用凭据缓存的密钥。

protected static java.lang.String keyForConnectorClient(String serviceUrl, String appId, String scope)

生成用于访问连接器客户端缓存的密钥。

java.util.concurrent.CompletableFuture<InvokeResponse>

processActivity(ClaimsIdentity identity, Activity activity, BotCallbackHandler callback)

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

java.util.concurrent.CompletableFuture<InvokeResponse>

processActivity(String authHeader, Activity activity, BotCallbackHandler callback)

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

java.util.concurrent.CompletableFuture<ResourceResponse[]>

sendActivities(TurnContext context, List<Activity> activities)

将活动发送到对话。

java.util.concurrent.CompletableFuture<java.lang.Void>

signOutUser(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId)

使用自定义的应用凭据,使用令牌服务器将用户注销。

java.util.concurrent.CompletableFuture<java.lang.Void>

signOutUser(TurnContext context, String connectionName, String userId)

使用令牌服务器注销用户。

java.util.concurrent.CompletableFuture<ResourceResponse>

updateActivity(TurnContext context, Activity activity)

替换对话中的现有活动。

BotFrameworkAdapter use(Middleware middleware)

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

方法继承自 BotAdapter

方法继承自 java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

字段详细信息

CONNECTOR_CLIENT_KEY

public static final String CONNECTOR_CLIENT_KEY

用于存储 ConnectorClient 的密钥。

INVOKE_RESPONSE_KEY

public static final String INVOKE_RESPONSE_KEY

用于存储 InvokeResponse 的键。

TEAMSCONNECTOR_CLIENT_KEY

public static final String TEAMSCONNECTOR_CLIENT_KEY

用于存储 TeamsConnectorClient 的密钥。 仅用于测试。

构造函数详细信息

BotFrameworkAdapter

public BotFrameworkAdapter(AppCredentials withCredentials, AuthenticationConfiguration withAuthConfig, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

Parameters:

withCredentials - 要使用的凭据。
withAuthConfig - 身份验证配置。
withChannelProvider - 通道提供程序。
withRetryStrategy - 用于重试 HTTP 操作的重试策略。
withMiddleware - 要最初添加到适配器的中间件。

BotFrameworkAdapter

public BotFrameworkAdapter(CredentialProvider withCredentialProvider)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

Parameters:

withCredentialProvider - 凭据提供程序。

BotFrameworkAdapter

public BotFrameworkAdapter(CredentialProvider withCredentialProvider, AuthenticationConfiguration withAuthConfig, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

Parameters:

withCredentialProvider - 凭据提供程序。
withAuthConfig - 身份验证配置。
withChannelProvider - 通道提供程序。
withRetryStrategy - 用于重试 HTTP 操作的重试策略。
withMiddleware - 要最初添加到适配器的中间件。

BotFrameworkAdapter

public BotFrameworkAdapter(CredentialProvider withCredentialProvider, ChannelProvider withChannelProvider, RetryStrategy withRetryStrategy, Middleware withMiddleware)

使用凭据提供程序初始化 类的新实例 BotFrameworkAdapter

Parameters:

withCredentialProvider - 凭据提供程序。
withChannelProvider - 通道提供程序。
withRetryStrategy - 用于重试 HTTP 操作的重试策略。
withMiddleware - 要最初添加到适配器的中间件。

方法详细信息

addConnectorClientToCache

protected void addConnectorClientToCache(String serviceUrl, String appId, String scope, ConnectorClient client)

将 ConnectorClient 插入缓存中。 仅适用于单元测试。

Parameters:

serviceUrl - 服务 URL
appId - 应用做到了
scope - 范围
client - 要插入的 ConnectorClient。

buildAppCredentials

protected CompletableFuture buildAppCredentials(String appId, String scope)

为指定的 appId 和范围创建 AppCredentials 对象。

Parameters:

appId - appId。
scope - 范围。

Returns:

AppCredentials 对象。

continueConversation

public CompletableFuture continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, BotCallbackHandler callback)

向对话发送主动消息。

调用此方法可主动向会话发送消息。 大多数通道要求用户先启动与机器人的对话,然后机器人才能向用户发送活动。

Overrides:

BotFrameworkAdapter.continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, BotCallbackHandler callback)

Parameters:

claimsIdentity - 会话的 ClaimsIdentity 引用。
reference - 对要继续的对话的引用。
callback - 要为结果机器人轮次调用的方法。

Returns:

表示排队等待执行的工作的任务。

continueConversation

public CompletableFuture continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, String audience, BotCallbackHandler callback)

向对话发送主动消息。

调用此方法可主动向会话发送消息。 大多数通道要求用户先启动与机器人的对话,然后机器人才能向用户发送活动。

Overrides:

BotFrameworkAdapter.continueConversation(ClaimsIdentity claimsIdentity, ConversationReference reference, String audience, BotCallbackHandler callback)

Parameters:

claimsIdentity - 会话的 ClaimsIdentity 引用。
reference - 对要继续的对话的引用。
audience - 一个值,表示主动消息的接收方。
callback - 要为结果机器人轮次调用的方法。

Returns:

表示排队等待执行的工作的任务。

continueConversation

public CompletableFuture continueConversation(String botAppId, ConversationReference reference, BotCallbackHandler callback)

将主动消息从机器人发送到聊天。

调用此方法可主动向会话发送消息。 大多数通道要求用户先启动与机器人的对话,然后机器人才能向用户发送活动。

此重载不同于 Node 实现,要求传入 BotId。 .Net 代码允许将多个机器人托管在 Node 不支持的单个适配器中。

processActivity(String authHeader, Activity activity, BotCallbackHandler callback) runPipeline(TurnContext context, BotCallbackHandler callback)

Overrides:

BotFrameworkAdapter.continueConversation(String botAppId, ConversationReference reference, BotCallbackHandler callback)

Parameters:

botAppId - 机器人的应用程序 ID。 这是门户注册返回的 appId,通常位于 appSettings.json 中的“MicrosoftAppId”参数中。
reference - 对要继续的对话的引用。
callback - 要为生成的机器人轮次调用的方法。

Returns:

表示排队等待执行的工作的任务。

createConnectorClient

public CompletableFuture createConnectorClient(String serviceUrl, ClaimsIdentity claimsIdentity, String audience)

异步创建连接器客户端。

Parameters:

serviceUrl - 服务 URL。
claimsIdentity - 声明标识。
audience - 连接器的目标受众。

Returns:

ConnectorClient 实例。

createConversation

public CompletableFuture createConversation(String channelId, String serviceUrl, MicrosoftAppCredentials credentials, ConversationParameters conversationParameters, BotCallbackHandler callback)

在指定通道上创建会话。 若要开始对话,机器人必须知道其帐户信息和该通道上的用户帐户信息。 大多数频道仅支持 (非组) 对话发起直接消息。

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

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

Parameters:

channelId - 通道的 ID。
serviceUrl - 通道的服务 URL 终结点。
credentials - 机器人的应用程序凭据。
conversationParameters - 用于创建对话的会话信息。
callback - 要为生成的机器人轮次调用的方法。

Returns:

一个任务,表示排队要执行的工作。

createConversation


public CompletableFuture createConversation(String channelId, String serviceUrl, MicrosoftAppCredentials credentials, ConversationParameters conversationParameters, BotCallbackHandler callback, ConversationReference reference)

在指定通道上创建对话。 若要开始对话,机器人必须知道其帐户信息和该通道上的用户帐户信息。 大多数频道仅支持 (非组) 对话发起直接消息。

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

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

Parameters:

channelId - 通道的 ID。
serviceUrl - 通道的服务 URL 终结点。
credentials - 机器人的应用程序凭据。
conversationParameters - 用于创建对话的会话信息。
callback - 要为生成的机器人轮次调用的方法。
reference - 包含租户的会话引用。

Returns:

一个任务,表示排队要执行的工作。

createOAuthAPIClient

protected CompletableFuture createOAuthAPIClient(TurnContext turnContext, AppCredentials oAuthAppCredentials)

为机器人创建 OAuth 客户端。

注意:这主要受到保护,以便单元测试可以重写以提供模拟 OAuthClient。

Parameters:

turnContext - 当前轮次的上下文对象。
oAuthAppCredentials - 创建客户端时要使用的凭据。 如果为 null,则使用默认凭据。

Returns:

机器人的 OAuth 客户端。

deleteActivity

public CompletableFuture deleteActivity(TurnContext context, ConversationReference reference)

删除对话中的现有活动。

Overrides:

BotFrameworkAdapter.deleteActivity(TurnContext context, ConversationReference reference)

Parameters:

context - 轮次的上下文对象。
reference - 要删除的活动的对话引用。

Returns:

一个任务,表示排队要执行的工作。 onDeleteActivity(DeleteActivityHandler handler)

deleteConversationMember

public CompletableFuture deleteConversationMember(TurnContextImpl context, String memberId)

从当前对话中删除成员。

Parameters:

context - 轮次的上下文对象。
memberId - 要从对话中删除的成员的 ID

Returns:

一个任务,表示排队要执行的工作。

exchangeToken

public CompletableFuture exchangeToken(TurnContext turnContext, AppCredentials oAuthAppCredentials, String connectionName, String userId, TokenExchangeRequest exchangeRequest)

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

Parameters:

turnContext - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 要使用的身份验证连接的名称。
userId - 与令牌关联的用户 ID。
exchangeRequest - 交换请求详细信息,要交换的令牌或要交换的 URI。

Returns:

如果任务完成,则返回交换的令牌。

exchangeToken

public CompletableFuture exchangeToken(TurnContext turnContext, String connectionName, String userId, TokenExchangeRequest exchangeRequest)

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

Parameters:

turnContext - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。
userId - 与令牌关联的用户 ID。
exchangeRequest - 交换请求详细信息,要交换的令牌或要交换的 URI。

Returns:

如果任务完成,则返回交换的令牌。

getAadTokens

public CompletableFuture<>> getAadTokens(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String[] resourceUrls, String userId)

使用自定义的 AppCredentials 检索配置连接上特定资源的 Azure Active Directory 令牌。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 使用此机器人配置的 Azure Active Directory 连接的名称。
resourceUrls - 要为其检索令牌的资源 URL 列表。
userId - 为其检索令牌的用户 ID。 如果传入 null,则从 TurnContext 中的活动获取 userId。

Returns:

resourceUrl 到相应 TokenResponse 的字典。

getAadTokens

public CompletableFuture<>> getAadTokens(TurnContext context, String connectionName, String[] resourceUrls, String userId)

检索已配置连接上特定资源的 Azure Active Directory 令牌。

Parameters:

context - 与用户当前轮次对话的上下文。
connectionName - 使用此机器人配置的 Azure Active Directory 连接的名称。
resourceUrls - 要为其检索令牌的资源 URL 列表。
userId - 为其检索令牌的用户 ID。 如果传入 null,则从 TurnContext 中的活动获取 userId。

Returns:

将 resourceUrl 映射到相应的 TokenResponse

getActivityMembers

public CompletableFuture<>> getActivityMembers(TurnContextImpl context)

列出给定活动的成员。

Parameters:

context - 轮次的上下文对象。

Returns:

活动的成员列表

getActivityMembers

public CompletableFuture<>> getActivityMembers(TurnContextImpl context, String activityId)

列出给定活动的成员。

Parameters:

context - 轮次的上下文对象。
activityId - (要枚举的可选) 活动 ID。 如果未指定,将使用当前活动 ID。

Returns:

活动的成员列表

getConnectorClientCache

protected Map getConnectorClientCache()

获取 ConnectorClient 缓存。 用于单元测试。

Returns:

ConnectorClient 缓存。

getConversationMembers

public CompletableFuture<>> getConversationMembers(TurnContextImpl context)

列出当前对话的成员。

Parameters:

context - 轮次的上下文对象。

Returns:

当前对话的成员列表

getConversations

public CompletableFuture getConversations(TurnContextImpl context)

列出此机器人为给定通道服务器参与的对话。 通道服务器以页面形式返回结果,每个页面将包含一个可用于从服务器提取下一页结果的“continuationToken”。 可以在标准活动处理期间调用此重载,此时将使用机器人的服务 URL 和当前活动处理管道一部分的凭据。

Parameters:

context - 轮次的上下文对象。

Returns:

当前对话的成员列表

getConversations

public CompletableFuture getConversations(TurnContextImpl context, String continuationToken)

列出此机器人为给定通道服务器参与的对话。 通道服务器以页面形式返回结果,每个页面将包含一个可用于从服务器提取下一页结果的“continuationToken”。 可以在标准活动处理期间调用此重载,此时将使用机器人的服务 URL 和当前活动处理管道一部分的凭据。

Parameters:

context - 轮次的上下文对象。
continuationToken - 结果上一页的延续标记。

Returns:

当前对话的成员列表

getConversations

public CompletableFuture getConversations(String serviceUrl, MicrosoftAppCredentials credentials)

列出此机器人为给定通道服务器参与的对话。 通道服务器以页面形式返回结果,每个页面将包含一个可用于从服务器提取下一页结果的“continuationToken”。

Parameters:

serviceUrl - 要查询的通道服务器的 URL。 可以从 中检索此数据 context.activity.serviceUrl
credentials - 机器人连接到 the.services () 所需的凭据。

Returns:

当前对话的成员列表

可以从会话上下文外部调用此重载,因为只需要机器人的 ServiceUrl 和凭据。

getConversations

public CompletableFuture getConversations(String serviceUrl, MicrosoftAppCredentials credentials, String continuationToken)

列出此机器人为给定通道服务器参与的对话。 通道服务器以页面形式返回结果,每个页面将包含一个可用于从服务器提取下一页结果的“continuationToken”。 可以从会话上下文外部调用此重载,因为只需要机器人的 ServiceUrl 和凭据。

Parameters:

serviceUrl - 要查询的通道服务器的 URL。 可以从 中检索此数据 context.activity.serviceUrl
credentials - 机器人连接到 the.services () 所需的凭据。
continuationToken - 结果上一页的延续标记。

Returns:

当前对话的成员列表

getCredentialsCache

protected Map getCredentialsCache()

获取 AppCredentials 缓存。 用于单元测试。

Returns:

AppCredentials 缓存。

getOAuthSignInLink

public CompletableFuture getOAuthSignInLink(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName)

使用自定义的 AppCredentials 获取要发送给用户以登录的连接名称的原始登录链接。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 要使用的身份验证连接的名称。

Returns:

一个任务,表示排队要执行的工作。
     If the task completes successfully, the result contains the raw
     signin link.

getOAuthSignInLink

public CompletableFuture getOAuthSignInLink(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId, String finalRedirect)

使用机器人的 AppCredentials 获取要发送给用户用于登录的连接名称的原始登录链接。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials
connectionName - 要使用的身份验证连接的名称。
userId - 将与令牌关联的用户 ID。
finalRedirect - OAuth 流将重定向到的最终 URL。

Returns:

一个任务,表示排队要执行的工作。
     If the task completes successfully, the result contains the raw
     signin link.

getOAuthSignInLink

public CompletableFuture getOAuthSignInLink(TurnContext context, String connectionName)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

Parameters:

context - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。

Returns:

一个任务,表示排队要执行的工作。

getOAuthSignInLink

public CompletableFuture getOAuthSignInLink(TurnContext context, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

Parameters:

context - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。
userId - 将与令牌关联的用户 ID。
finalRedirect - OAuth 流将重定向到的最终 URL。

Returns:

一个任务,表示排队要执行的工作。

getOrCreateConnectorClient

protected CompletableFuture getOrCreateConnectorClient(String serviceUrl, AppCredentials usingAppCredentials)

从缓存或新建返回 ConnectorClient。

注意:这主要是为了允许单元测试重写此内容以提供模拟 ConnectorClient

Parameters:

serviceUrl - 客户端的服务 URL。
usingAppCredentials - (可选) 要使用的 AppCredentials。

Returns:

将返回 ConnectorClient 的任务。

getSignInResource

public CompletableFuture getSignInResource(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 要使用的身份验证连接的名称。
userId - 将与令牌关联的用户 ID。
finalRedirect - OAuth 流将重定向到的最终 URL。

Returns:

一个任务,表示排队要执行的工作。
     If the task completes successfully, the result contains the raw
     signin link.

getSignInResource

public CompletableFuture getSignInResource(TurnContext turnContext, String connectionName)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

Parameters:

turnContext - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。

Returns:

一个任务,表示排队要执行的工作。
     If the task completes successfully, the result contains the raw
     signin link.

getSignInResource

public CompletableFuture getSignInResource(TurnContext turnContext, String connectionName, String userId, String finalRedirect)

获取要发送给用户进行登录的原始登录链接,以获取连接名称。

Parameters:

turnContext - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。
userId - 将与令牌关联的用户 ID。
finalRedirect - OAuth 流将重定向到的最终 URL。

Returns:

一个任务,表示排队要执行的工作。
     If the task completes successfully, the result contains the raw
     signin link.

getTokenStatus

public CompletableFuture<>> getTokenStatus(TurnContext context, AppCredentials oAuthAppCredentials, String userId, String includeFilter)

使用自定义的 AppCredentials 检索给定用户的每个已配置连接的令牌状态。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
userId - 为其检索令牌状态的用户 ID。
includeFilter - 要包含的连接的可选逗号分隔列表。 空将返回所有已配置连接的令牌状态。

Returns:

TokenStatus 列表。

getTokenStatus

public CompletableFuture<>> getTokenStatus(TurnContext context, String userId, String includeFilter)

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

Parameters:

context - 与用户当前轮次对话的上下文。
userId - 为其检索令牌状态的用户 ID。
includeFilter - 要包含的连接的可选逗号分隔列表。 空将返回所有已配置连接的令牌状态。

Returns:

TokenStatus 数组。

getUserToken

public CompletableFuture getUserToken(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String magicCode)

尝试使用自定义 AppCredentials 检索登录流中的用户的令牌。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 要使用的身份验证连接的名称。
magicCode - (可选) 可选用户输入的代码进行验证。

Returns:

令牌响应。

getUserToken

public CompletableFuture getUserToken(TurnContext context, String connectionName, String magicCode)

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

Parameters:

context - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。
magicCode - (可选) 可选用户输入的代码进行验证。

Returns:

令牌响应

keyForAppCredentials

protected static String keyForAppCredentials(String appId, String scope)

生成用于访问应用凭据缓存的密钥。

Parameters:

appId - appId
scope - 范围。

Returns:

缓存键

keyForConnectorClient

protected static String keyForConnectorClient(String serviceUrl, String appId, String scope)

生成用于访问连接器客户端缓存的密钥。

Parameters:

serviceUrl - 服务 URL
appId - 应用确实做到了
scope - 范围

Returns:

缓存键。

processActivity

public CompletableFuture processActivity(ClaimsIdentity identity, Activity activity, BotCallbackHandler callback)

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

Parameters:

identity - 请求的 。ClaimsIdentity
activity - 传入活动。
callback - 在适配器中间件管道末尾运行的代码。

Returns:

一个任务,表示排队要执行的工作。 如果活动类型为“Invoke”,并且找到相应的键 (channelId + activityId) ,则返回 InvokeResponse,否则返回 null。

processActivity

public CompletableFuture processActivity(String authHeader, Activity activity, BotCallbackHandler callback)

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

Parameters:

authHeader - 请求的 HTTP 身份验证标头。
activity - 传入活动。
callback - 在适配器中间件管道末尾运行的代码。

Returns:

一个任务,表示排队要执行的工作。 如果活动类型为“Invoke”,并且找到相应的键 (channelId + activityId) ,则返回 InvokeResponse,否则返回 null。

sendActivities

public CompletableFuture sendActivities(TurnContext context, List activities)

将活动发送到对话。

Overrides:

BotFrameworkAdapter.sendActivities(TurnContext context, List<Activity> activities)

Parameters:

context - 轮次的上下文对象。
activities - 要发送的活动。

Returns:

一个任务,表示排队要执行的工作。 如果活动成功发送,则任务结果包含一个对象数组 ResourceResponse ,其中包含接收通道分配给活动的 ID。
     <xref uid="com.microsoft.bot.builder.TurnContext.onSendActivities(com.microsoft.bot.builder.SendActivitiesHandler)" data-throw-if-not-resolved="false" data-raw-source="TurnContext#onSendActivities(SendActivitiesHandler)"></xref>

signOutUser

public CompletableFuture signOutUser(TurnContext context, AppCredentials oAuthAppCredentials, String connectionName, String userId)

使用自定义 AppCredentials 使用令牌服务器将用户注销。

Parameters:

context - 与用户当前轮次对话的上下文。
oAuthAppCredentials - 适用于 OAuth 的 AppCredentials。
connectionName - 要使用的身份验证连接的名称。
userId - 要注销的用户的用户 ID。

Returns:

一个任务,表示排队要执行的工作。

signOutUser

public CompletableFuture signOutUser(TurnContext context, String connectionName, String userId)

使用令牌服务器注销用户。

Parameters:

context - 与用户当前轮次对话的上下文。
connectionName - 要使用的身份验证连接的名称。
userId

Returns:

一个任务,表示排队要执行的工作。

updateActivity

public CompletableFuture updateActivity(TurnContext context, Activity activity)

替换对话中的现有活动。

Overrides:

BotFrameworkAdapter.updateActivity(TurnContext context, Activity activity)

Parameters:

context - 轮次的上下文对象。
activity - 新的替换活动。

Returns:

一个任务,表示排队要执行的工作。 如果活动成功发送,则任务结果包含一个 ResourceResponse 对象,该对象包含接收通道分配给活动的 ID。

在调用此项之前,请将替换活动的 ID 设置为要替换的活动的 ID。 onUpdateActivity(UpdateActivityHandler handler)

use

public BotFrameworkAdapter use(Middleware middleware)

将中间件添加到适配器的管道。 中间件在初始化时添加到适配器。 对于每个轮次,适配器按添加它的顺序调用中间件。

Overrides:

BotFrameworkAdapter.use(Middleware middleware)

Parameters:

middleware - 要添加的中间件。

Returns:

更新的适配器对象。

适用于