BotFrameworkAdapter 类
定义用于将机器人连接到服务终结点的适配器。
初始化 BotFrameworkAdapter 类的新实例。
- 继承
-
BotFrameworkAdapterBotFrameworkAdapterBotFrameworkAdapter
构造函数
BotFrameworkAdapter(settings: BotFrameworkAdapterSettings)
参数
名称 | 说明 |
---|---|
settings
必需
|
用于初始化适配器的设置 |
注解
机器人适配器封装了身份验证过程,并将活动发送到机器人连接器服务并从机器人连接器服务接收活动。 当机器人收到活动时,适配器会创建上下文对象,将其传递给机器人的应用程序逻辑,并将响应发送回用户的通道。 适配器处理传入的活动并通过机器人中间件管道将其定向到机器人的逻辑,然后再返回。 当每个活动流入和流出机器人时,每个中间件都可以在机器人逻辑运行前后对其进行检查或执行操作。
方法
can_process_outgoing_activity | |
continue_conversation |
继续与用户对话。 和 通常位于 config.py 的 MicrosoftAppId 参数中。 :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.py 的 MicrosoftAppId 参数中。 :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
必需
|
要从对话中删除的成员的 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
必需
|
成员 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
|
上一页结果中的继续标记 默认值: None
|
service_url
必需
|
|
credentials
必需
|
|
返回
类型 | 说明 |
---|---|
表示排队等待执行的工作的任务 |
例外
类型 | 说明 |
---|---|
A generic exception error
|
注解
通道服务器以页面形式返回结果,每个页面将包含一个 continuationToken ,可用于从服务器提取下一页结果。 如果任务成功完成,则结果包含当前会话的成员页。 可以从会话上下文外部调用此重载,因为只需要机器人的服务 URL 和凭据。
get_oauth_sign_in_link
获取要发送给用户以登录连接名称的原始登录链接。
async get_oauth_sign_in_link(context: TurnContext, connection_name: str, final_redirect: str = None, oauth_app_credentials: AppCredentials = None) -> str
参数
名称 | 说明 |
---|---|
context
必需
|
与用户当前轮次对话的上下文 |
connection_name
必需
|
要使用的身份验证连接的名称 |
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
|
要使用的身份验证连接的名称 默认值: None
|
user_id
|
要注销的用户的用户 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。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈