BotFrameworkAdapter 类

定义用于将机器人连接到服务终结点的适配器。

初始化 BotFrameworkAdapter 类的新实例。

继承
BotFrameworkAdapter
BotFrameworkAdapter
BotFrameworkAdapter

构造函数

BotFrameworkAdapter(settings: BotFrameworkAdapterSettings)

参数

名称 说明
settings
必需

用于初始化适配器的设置

注解

机器人适配器封装了身份验证过程,并将活动发送到机器人连接器服务并从机器人连接器服务接收活动。 当机器人收到活动时,适配器会创建上下文对象,将其传递给机器人的应用程序逻辑,并将响应发送回用户的通道。 适配器处理传入的活动并通过机器人中间件管道将其定向到机器人的逻辑,然后再返回。 当每个活动流入和流出机器人时,每个中间件都可以在机器人逻辑运行前后对其进行检查或执行操作。

方法

can_process_outgoing_activity
continue_conversation

继续与用户对话。

和 通常位于 config.pyMicrosoftAppId 参数中。 :type bot_id: <xref:typing.str> :p aram claims_identity: 机器人声明标识 :type claims_identity: <xref:botframework.connector.auth.ClaimsIdentity> :p aram audience: :type audience: <xref:typing.str>

create_connector_client

实现ConnectorClientProvider.create_connector_client。

create_conversation

开始与用户的新对话。 用于将消息定向到组的成员。

delete_activity

删除以前发送到通道的活动。 应注意的是,并非所有通道都支持此功能。

注意

的activity_id ConversationReference 标识要删除的活动。

delete_conversation_member

从当前对话中删除成员。

exchange_token
exchange_token_from_credentials
get_aad_tokens

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

从 TurnContext 中的活动。 :type user_id: str :p aram oauth_app_credentials: (适用于 OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

get_activity_members

Lists给定活动的成员。

如果未指定,将使用当前活动 ID。

get_conversation_member

检索当前会话的成员。

get_conversation_members

Lists当前会话的成员。

get_conversations

Lists此机器人已参与给定通道服务器的对话。

context.activity.serviceUrl :type service_url: str

get_oauth_sign_in_link

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

get_sign_in_resource_from_user
get_sign_in_resource_from_user_and_credentials
get_token_status

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

空白将返回所有已配置连接的令牌状态。 :type include_filter: str :p aram oauth_app_credentials: (OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

get_user_token

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

:p aram magic_code“ (可选) 用户输入的代码来验证 :str magic_code” str :p aram oauth_app_credentials: (OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

key_for_app_credentials
key_for_connector_client
parse_request

分析和验证请求:p aram 请求: :return:

process_activity

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

process_activity_with_identity
process_outgoing_activity
send_activities
sign_out_user

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

update_activity

替换以前发送到通道的活动。 应注意的是,并非所有通道都支持此功能。

can_process_outgoing_activity

can_process_outgoing_activity(activity: Activity) -> bool

参数

名称 说明
activity
必需

continue_conversation

继续与用户对话。

和 通常位于 config.pyMicrosoftAppId 参数中。 :type bot_id: <xref:typing.str> :p aram claims_identity: 机器人声明标识 :type claims_identity: <xref:botframework.connector.auth.ClaimsIdentity> :p aram audience: :type audience: <xref:typing.str>

async continue_conversation(reference: ConversationReference, callback: Callable, bot_id: str = None, claims_identity: ClaimsIdentity = None, audience: str = None)

参数

名称 说明
reference
必需
callback
必需
bot_id
默认值: None
claims_identity
默认值: None
audience
默认值: None

返回

类型 说明

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

例外

类型 说明
It raises an argument null exception.

注解

这通常称为机器人 主动消息传递 流,因为它允许机器人主动向已处于通信状态的对话或用户发送消息。 此函数支持向用户发送通知或优惠券等方案。

create_connector_client

实现ConnectorClientProvider.create_connector_client。

async create_connector_client(service_url: str, identity: ClaimsIdentity = None, audience: str = None) -> ConnectorClient

参数

名称 说明
service_url
必需

服务 URL

identity

声明标识

默认值: None
audience
默认值: None

返回

类型 说明

<xref:botbuilder.core.ConnectorClient> 类的实例

create_conversation

开始与用户的新对话。 用于将消息定向到组的成员。

async create_conversation(reference: ConversationReference, logic: Callable[[TurnContext], Awaitable] = None, conversation_parameters: ConversationParameters = None, channel_id: str = None, service_url: str = None, credentials: AppCredentials = None)

参数

名称 说明
reference
必需

包含租户的对话引用

logic

用于创建会话的逻辑

默认值: None
conversation_parameters

用于创建对话的信息

默认值: None
channel_id
<xref:typing.str>

通道的 ID。

默认值: None
service_url
<xref:typing.str>

通道的服务 URL 终结点。

默认值: None
credentials
<xref:botframework.connector.auth.AppCredentials>

机器人的应用程序凭据。

默认值: None

返回

类型 说明

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

例外

类型 说明
It raises a generic exception error.

注解

若要开始聊天,机器人必须知道其帐户信息和该通道上的用户帐户信息。 大多数频道仅支持启动直接消息 (非组) 对话。 适配器尝试在通道上创建新会话,然后通过其中间件管道将聊天更新活动发送到回调方法。 如果与指定用户建立会话,则活动的 ID 将包含新会话的 ID。

delete_activity

删除以前发送到通道的活动。 应注意的是,并非所有通道都支持此功能。

注意

的activity_id ConversationReference 标识要删除的活动。

async delete_activity(context: TurnContext, reference: ConversationReference)

参数

名称 说明
context
必需

轮次的上下文对象

reference
必需

要删除的活动的对话引用

返回

类型 说明

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

例外

类型 说明
A exception error

delete_conversation_member

从当前对话中删除成员。

async delete_conversation_member(context: TurnContext, member_id: str) -> None

参数

名称 说明
context
必需

轮次的上下文对象

member_id
必需
str

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

返回

类型 说明

表示排队等待执行的工作的任务。</返回

例外

类型 说明
A exception error

exchange_token

async exchange_token(turn_context: TurnContext, connection_name: str, user_id: str, exchange_request: TokenExchangeRequest) -> TokenResponse

参数

名称 说明
turn_context
必需
connection_name
必需
user_id
必需
exchange_request
必需

exchange_token_from_credentials

async exchange_token_from_credentials(turn_context: TurnContext, oauth_app_credentials: AppCredentials, connection_name: str, user_id: str, exchange_request: TokenExchangeRequest) -> TokenResponse

参数

名称 说明
turn_context
必需
oauth_app_credentials
必需
connection_name
必需
user_id
必需
exchange_request
必需

get_aad_tokens

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

从 TurnContext 中的活动。 :type user_id: str :p aram oauth_app_credentials: (适用于 OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

async get_aad_tokens(context: TurnContext, connection_name: str, resource_urls: List[str], user_id: str = None, oauth_app_credentials: AppCredentials = None) -> Dict[str, TokenResponse]

参数

名称 说明
context
必需
connection_name
必需
resource_urls
必需
user_id
默认值: None
oauth_app_credentials
默认值: None

返回

类型 说明

指向相应 :class:'botbuilder.schema.TokenResponse' 的资源 URL 字典

get_activity_members

Lists给定活动的成员。

如果未指定,将使用当前活动 ID。

async get_activity_members(context: TurnContext, activity_id: str)

参数

名称 说明
context
必需
activity_id
必需

返回

类型 说明

活动的成员列表

例外

类型 说明
An exception error

get_conversation_member

检索当前会话的成员。

async get_conversation_member(context: TurnContext, member_id: str) -> ChannelAccount

参数

名称 说明
context
必需

轮次的上下文对象

member_id
必需
str

成员 ID

返回

类型 说明

当前对话的成员

例外

类型 说明
<xref:A TypeError if missing member_id>, <xref:service_url>, <xref:or conversation.id>

get_conversation_members

Lists当前会话的成员。

async get_conversation_members(context: TurnContext)

参数

名称 说明
context
必需

轮次的上下文对象

返回

类型 说明

当前对话的成员列表

例外

类型 说明
TypeError if missing service_url or conversation.id

get_conversations

Lists此机器人已参与给定通道服务器的对话。

context.activity.serviceUrl :type service_url: str

async get_conversations(service_url: str, credentials: AppCredentials, continuation_token: str = None)

参数

名称 说明
continuation_token
str

上一页结果中的继续标记

默认值: None
service_url
必需
credentials
必需

返回

类型 说明

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

例外

类型 说明
A generic exception error

注解

通道服务器以页面形式返回结果,每个页面将包含一个 continuationToken ,可用于从服务器提取下一页结果。 如果任务成功完成,则结果包含当前会话的成员页。 可以从会话上下文外部调用此重载,因为只需要机器人的服务 URL 和凭据。

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

async get_oauth_sign_in_link(context: TurnContext, connection_name: str, final_redirect: str = None, oauth_app_credentials: AppCredentials = None) -> str

参数

名称 说明
context
必需

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

connection_name
必需
str

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

final_redirect

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

默认值: None
oauth_app_credentials
<xref:botframework.connector.auth.AppCredential>

(适用于 OAuth 的可选) AppCredentials。

默认值: None

返回

类型 说明

如果任务成功完成,则结果包含原始登录链接

get_sign_in_resource_from_user

async get_sign_in_resource_from_user(turn_context: TurnContext, connection_name: str, user_id: str, final_redirect: str = None) -> SignInUrlResponse

参数

名称 说明
turn_context
必需
connection_name
必需
user_id
必需
final_redirect
默认值: None

get_sign_in_resource_from_user_and_credentials

async get_sign_in_resource_from_user_and_credentials(turn_context: TurnContext, oauth_app_credentials: AppCredentials, connection_name: str, user_id: str, final_redirect: str = None) -> SignInUrlResponse

参数

名称 说明
turn_context
必需
oauth_app_credentials
必需
connection_name
必需
user_id
必需
final_redirect
默认值: None

get_token_status

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

空白将返回所有已配置连接的令牌状态。 :type include_filter: str :p aram oauth_app_credentials: (OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

async get_token_status(context: TurnContext, connection_name: str = None, user_id: str = None, include_filter: str = None, oauth_app_credentials: AppCredentials = None) -> List[TokenStatus]

参数

名称 说明
context
必需
connection_name
默认值: None
user_id
默认值: None
include_filter
默认值: None
oauth_app_credentials
默认值: None

返回

类型 说明

<xref:botframework.connector.token_api.modelsTokenStatus> 的数组

get_user_token

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

:p aram magic_code“ (可选) 用户输入的代码来验证 :str magic_code” str :p aram oauth_app_credentials: (OAuth 的可选) AppCredentials。 :type oauth_app_credentials: <xref:botframework.connector.auth.AppCredential>

async get_user_token(context: TurnContext, connection_name: str, magic_code: str = None, oauth_app_credentials: AppCredentials = None) -> TokenResponse

参数

名称 说明
context
必需
connection_name
必需
magic_code
默认值: None
oauth_app_credentials
默认值: None

返回

类型 说明
:<xref:class>:’TokenResponse`

令牌响应

例外

类型 说明
An exception error

key_for_app_credentials

static key_for_app_credentials(app_id: str, scope: str)

参数

名称 说明
app_id
必需
scope
必需

key_for_connector_client

static key_for_connector_client(service_url: str, app_id: str, scope: str)

参数

名称 说明
service_url
必需
app_id
必需
scope
必需

parse_request

分析和验证请求:p aram 请求: :return:

async static parse_request(req)

参数

名称 说明
req
必需

process_activity

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

async process_activity(req, auth_header: str, logic: Callable)

参数

名称 说明
req
必需
<xref:typing.str>

传入活动

auth_header
必需
<xref:typing.str>

请求的 HTTP 身份验证标头

logic
必需

在适配器中间件管道末尾执行的逻辑。

返回

类型 说明

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

注解

此类处理机器人 Web 服务器收到的活动。 这包括从用户发送的任何消息,并且是驱动通常称为机器人 反应式消息 传送流的方法。 调用此方法以被动方式向会话发送消息。 如果任务成功完成,则 InvokeResponse 返回 ;否则返回 。 返回 null

process_activity_with_identity

async process_activity_with_identity(activity: Activity, identity: ClaimsIdentity, logic: Callable)

参数

名称 说明
activity
必需
identity
必需
logic
必需

process_outgoing_activity

async process_outgoing_activity(turn_context: TurnContext, activity: Activity) -> ResourceResponse

参数

名称 说明
turn_context
必需
activity
必需

send_activities

async send_activities(context: TurnContext, activities: List[Activity]) -> List[ResourceResponse]

参数

名称 说明
context
必需
activities
必需

sign_out_user

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

async sign_out_user(context: TurnContext, connection_name: str = None, user_id: str = None, oauth_app_credentials: AppCredentials = None)

参数

名称 说明
context
必需

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

connection_name
str

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

默认值: None
user_id
str

要注销的用户的用户 ID

默认值: None
oauth_app_credentials
<xref:botframework.connector.auth.AppCredential>

(适用于 OAuth 的可选) AppCredentials。

默认值: None

update_activity

替换以前发送到通道的活动。 应注意的是,并非所有通道都支持此功能。

async update_activity(context: TurnContext, activity: Activity)

参数

名称 说明
context
必需

轮次的上下文对象

activity
必需

新的替换活动

返回

类型 说明

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

例外

类型 说明
A generic exception error

注解

如果活动成功发送,则任务结果将包含一个 ResourceResponse 对象,该对象包含接收通道分配给活动的 ID。 在调用此函数之前,请将替换活动的 ID 设置为要替换的活动的 ID。