apps 包

版权所有 (c) Microsoft Corporation。 保留所有权利。 根据 MIT 许可证获得许可。

ActivityContext

传递给具有中间件支持的活动处理程序的上下文对象。

ActivityEvent

处理活动时发出的事件。

ActivityResponseEvent

在返回调用响应之前插件发出的事件。

ActivitySentEvent

发送活动时发出的事件。

App

主要的 Teams 应用程序业务流程协调程序。

管理Microsoft Teams应用的插件、令牌和应用程序生命周期。

AppOptions

Teams 应用的配置选项。

ClientContext

有关Microsoft Teams中的客户端和会话的运行时信息。

CoreActivity

所有传输都需要了解的核心活动字段。 通过 extra=“allow”为特定于协议的字段可扩展。

通过分析和验证关键字参数中的输入数据来创建新模型。

引发 [ValidationError][pydantic_core。如果无法验证输入数据以形成有效的模型,则 ValidationError]。

self 是显式位置仅允许 自己 作为字段名称。

DependencyMetadata

与插件依赖项关联的信息

ErrorEvent

发生错误时发出的事件。

EventMetadata

与插件事件关联的信息

EventProtocol

Teams 应用系统中事件对象的协议。

FastAPIAdapter

默认 HttpServerAdapter 实现包装 FastAPI + uvicorn。

FunctionContext

在 Teams 应用中为远程函数执行提供的上下文。

HttpServer

核心 Teams HTTP 服务器。 不是插件 - 直接由应用拥有。

管理 HttpServerAdapter 实例,并处理 Teams 协议的 JWT 验证和活动处理。

HttpServerAdapter

特定于框架的 HTTP 服务器适配器的协议。

实现此适配器以插入任何 HTTP 框架(FastAPI、Starlette、Flask 等)。 SDK 使用与框架无关 HttpRequest/HttpResponse 的对象调用这些方法,以便适配器可以转换到基础框架或从基础框架转换。

HttpStream

用于Microsoft Teams活动的基于 HTTP 的流式处理实现。

流:

  1. emit() 将活动添加到队列
  2. _flush() 在锁下清空整个队列。
  3. 如果未启动任何消息,则立即发送信息性键入更新。
  4. 消息文本合并为键入区块。
  5. 如果保留更多项,则会计划另一次刷新。
  6. close() 等待队列为空,然后使用 stream_type='stream_final' 发送最终消息

超时取消可确保一次只计划一个刷新操作。 刷新之间的延迟是确保我们不会通过Microsoft Teams达到 API 速率限制。

初始化新的 HttpStream 实例。

PluginActivityEvent

收到活动时插件发出的事件。

创建新的 PluginActivityEvent 实例(令牌、活动、conversation_ref)

PluginActivityResponseEvent

在发送活动响应之前发出的事件

创建 PluginActivityResponseEvent 的新实例(活动、conversation_ref、响应)

PluginActivitySentEvent

发送活动时发出的事件。

创建新的 PluginActivitySentEvent 实例(活动,conversation_ref)

PluginBase

Teams 应用插件的基本插件。

PluginErrorEvent

发生错误时发出的事件。

创建新的 PluginErrorEvent 实例(错误、活动)

PluginOptions

插件元数据

PluginStartEvent

启动插件时发出的事件。

创建新的 PluginStartEvent 实例(端口,)

SignInEvent

版权所有 (c) Microsoft Corporation。 保留所有权利。 根据 MIT 许可证获得许可。

StartEvent

应用启动时发出的事件。

StopEvent

应用停止时发出的事件。

StreamCancelledError

在流取消后尝试流操作时引发。

StreamerProtocol

可以发送活动的流式传输区块的组件。

TokenValidator

使用 PyJWKClient 进行简化验证的 JWT 令牌验证程序。

初始化令牌验证程序。

函数

Plugin

使用修饰器模式将任何类转换为插件。

Plugin(name: str | None = None, version: str | None = None, description: str | None = None) -> Callable[[Type[T]], Type[T]]

参数

名称 说明
name
默认值: None
version
默认值: None
description
默认值: None

get_event_type_from_signature

通过检查第一个参数的类型提示从函数签名中提取事件类型。

get_event_type_from_signature(func: Callable[[...], Any]) -> Literal['activity', 'error', 'start', 'stop', 'sign_in', 'activity_response', 'activity_sent'] | str | None

参数

名称 说明
func
必需

要检查的函数

返回

类型 说明

如果可检测到,则为事件类型字符串,否则为 None

get_metadata

从类获取插件元数据。

get_metadata(cls: Type[PluginBase]) -> PluginOptions

参数

名称 说明
cls
必需

is_registered_event

检查是否已注册事件名称。

is_registered_event(event_name: str) -> bool

参数

名称 说明
event_name
必需

要检查的事件名称

返回

类型 说明

如果已注册,则为 True;否则为 False

to_threaded_conversation_id

通过追加来构造线程会话 ID ;messageid={message_id} 到会话 ID。 这是 APX 用于将消息路由到特定线程的格式。

to_threaded_conversation_id(conversation_id: str, message_id: str) -> str

参数

名称 说明
conversation_id
必需

要线程进入的对话(例如 19:abc@thread.skype

message_id
必需

线程根消息 ID (必须是非零数值字符串)

返回

类型 说明
<xref:The> <xref:threaded> <xref:conversation> <xref:ID> (<xref:e.g.> `<xref:19>

<xref:mailto:abc@thread.skype>;messageid=123')

validate_remote_function_request

验证 JWT 并从请求标头中提取客户端上下文以获取远程函数调用。

async validate_remote_function_request(headers: Dict[str, str], entra_token_validator: TokenValidator | None) -> tuple[Optional[microsoft_teams.apps.contexts.client_context.ClientContext], Optional[str]]

参数

名称 说明
headers
必需

请求标头听写。

entra_token_validator
必需

用于Entra ID令牌的 TokenValidator 实例。

返回

类型 说明

失败时(ClientContext、None)的元组或(无、error_message) 的元组。