App 类

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

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

构造函数

App(**options: Unpack[AppOptions])

方法

event

修饰器,用于使用自动类型推理注册事件处理程序。

可通过多种方式使用:

  • @app.event (从类型提示自动检测)
  • @app.event(“activity”)
func

将函数注册为远程可调用终结点的修饰器。

get_app_graph

获取使用应用令牌配置的Microsoft Graph客户端。

此客户端可用于不需要用户上下文的仅限应用操作。 对于多租户应用,传递tenant_id以获取特定于租户的令牌。

initialize

在不启动 HTTP 服务器的情况下初始化 Teams 应用程序。

此方法设置凭据、令牌管理器、活动发送者和插件,使你能够在不运行服务器的情况下使用 app.send()进行主动消息传送。

page

注册静态页面以在特定路径中提供。

Args: name: page 的唯一名称 dir_path: 包含静态文件的目录page_path: 用于提供页面的可选路径 (默认值为 /pages/{name})

reply

将活动主动发送到会话,可以选择作为线程回复。

3-arg 形式reply(conversation_id, message_id, activity):通过并 to_threaded_conversation_id 发送到该线程构造线程会话 ID。 该服务确定给定会话类型是否支持线程处理。

2-arg 窗体reply(conversation_id, activity):如果会话 ID 包含 ;messageid=,则发送到提供的确切会话 ID,否则为平面。

send

主动将活动发送到对话。

发送到提供的确切聊天 ID。 对于通道线程,会话 ID 必须包含 ;messageid= - 用于 to_threaded_conversation_id 构造它,或使用 reply 自动处理此 ID。

start

启动 Teams 应用程序并开始提供 HTTP 请求。

此方法将阻止应用程序并使其保持运行,直到停止。 这是运行 Teams 应用的主要入口点。

stop

停止 Teams 应用程序。

tab

添加/更新静态选项卡。选项卡将托管在 http://localhost:<PORT>/tabs/<name> 或 https://<BOT_DOMAIN>/tabs/<name> Scopes 默认为“personal”。

use

添加中间件以在所有活动上运行。

event

修饰器,用于使用自动类型推理注册事件处理程序。

可通过多种方式使用:

  • @app.event (从类型提示自动检测)
  • @app.event(“activity”)
event(func_or_event_type: F) -> F

参数

名称 说明
func_or_event_type

要修饰的函数或事件类型字符串

默认值: None
event_type
必需

显式事件类型(仅限关键字)

返回

类型 说明

修饰的函数或修饰器

示例

“'<<>>'<<python @app.event 异步 def handle_activity(event: ActivityEvent):

print(f“Activity: {event.activity}”)

@app.event(“error”) 异步 def handle_error(event: ErrorEvent):

print(f“Error: {event.error}”)

''<<>>'<<

func

将函数注册为远程可调用终结点的修饰器。

func(name_or_func: str | FCtx | None = None) -> FCtx | Callable[[FCtx], FCtx]

参数

名称 说明
name_or_func
默认值: None
str
必需
<xref:<xref:->>

终结点的显式名称

Callable
必需
<xref:<xref:->>

直接修饰函数,终结点名称默认为函数的名称

示例

“'<<>>'<<python @app.func 异步 def post_to_chat(ctx: FunctionContext[Any]):

await ctx.send(ctx.data[“message”])

''<<>>'<<

get_app_graph

获取使用应用令牌配置的Microsoft Graph客户端。

此客户端可用于不需要用户上下文的仅限应用操作。 对于多租户应用,传递tenant_id以获取特定于租户的令牌。

get_app_graph(tenant_id: str | None = None) -> GraphServiceClient

参数

名称 说明
tenant_id

可选租户 ID。 如果未提供,请使用应用的默认租户。

默认值: None

例外

类型 说明

如果未安装图形依赖项。

initialize

在不启动 HTTP 服务器的情况下初始化 Teams 应用程序。

此方法设置凭据、令牌管理器、活动发送者和插件,使你能够在不运行服务器的情况下使用 app.send()进行主动消息传送。

async initialize() -> None

page

注册静态页面以在特定路径中提供。

Args: name: page 的唯一名称 dir_path: 包含静态文件的目录page_path: 用于提供页面的可选路径 (默认值为 /pages/{name})

page(name: str, dir_path: str, page_path: str | None = None) -> None

参数

名称 说明
name
必需
dir_path
必需
page_path
默认值: None

示例

python app.page("customform", os.path.join(os.path.dirname(__file__), "views", "customform"), "/tabs/dialog-form")

reply

将活动主动发送到会话,可以选择作为线程回复。

3-arg 形式reply(conversation_id, message_id, activity):通过并 to_threaded_conversation_id 发送到该线程构造线程会话 ID。 该服务确定给定会话类型是否支持线程处理。

2-arg 窗体reply(conversation_id, activity):如果会话 ID 包含 ;messageid=,则发送到提供的确切会话 ID,否则为平面。

async reply(conversation_id: str, message_id: str, activity: str | ActivityParams | AdaptiveCard) -> SentActivity

参数

名称 说明
conversation_id
必需

会话 ID

message_id
必需

线程根消息 ID (3-arg 窗体) 或活动 (2-arg 窗体)

activity

要发送的活动(仅以 3 元形式)

默认值: None

send

主动将活动发送到对话。

发送到提供的确切聊天 ID。 对于通道线程,会话 ID 必须包含 ;messageid= - 用于 to_threaded_conversation_id 构造它,或使用 reply 自动处理此 ID。

async send(conversation_id: str, activity: str | MessageActivityInput | MessageReactionActivityInput | TypingActivityInput | AdaptiveCard)

参数

名称 说明
conversation_id
必需
activity
必需

start

启动 Teams 应用程序并开始提供 HTTP 请求。

此方法将阻止应用程序并使其保持运行,直到停止。 这是运行 Teams 应用的主要入口点。

async start(port: int | None = None) -> None

参数

名称 说明
port

要侦听的端口(默认为 PORT env var 或 3978)

默认值: None

stop

停止 Teams 应用程序。

async stop() -> None

tab

添加/更新静态选项卡。选项卡将托管在 http://localhost:<PORT>/tabs/<name> 或 https://<BOT_DOMAIN>/tabs/<name> Scopes 默认为“personal”。

tab(name: str, path: str) -> None

参数

名称 说明
displays.
必需
<xref:<xref:name A unique identifier for the entity which the tab>>
content
必需
<xref:<xref:path The path to the directory containing the tab's>>
name
必需
path
必需

use

添加中间件以在所有活动上运行。

use(middleware: Callable[[ActivityContext[Activity]], Awaitable[None]]) -> None

参数

名称 说明
middleware
必需

属性

events

应用使用的事件发出器实例。

id

应用的 ID 来自凭据。

port

端口应用正在运行。

router

活动路由器实例。