camel.bots.slack 包

本页内容

camel.bots.slack 包#

子模块#

camel.bots.slack.models 模块#

class camel.bots.slack.models.SlackAppMentionEventBody(*, token: str, team_id: str, context_team_id: str | None = None, context_enterprise_id: str | None = None, api_app_id: str, event: SlackAppMentionEventProfile, type: str, event_id: str, event_time: int, authorizations: list[SlackAuthProfile] | None = None, is_ext_shared_channel: bool, event_context: str)[来源]#

基类: SlackEventBody

表示Slack事件中提及该应用的整个消息体。

api_app_id: str#

接收事件的Slack应用程序的唯一标识符。

authorizations: list[SlackAuthProfile] | None#

一个可选的授权列表,用于描述哪些安装可以看到该事件。

context_enterprise_id: str | None#

共享频道上下文的企业ID(如适用)。

context_team_id: str | None#

事件的详细资料。对于应用提及(app mentions)则为None。

event: SlackAppMentionEventProfile#

事件的详细分析

event_context: str#

表示事件上下文的唯一字符串。

event_id: str#

由Slack分配给此事件的唯一标识符。

event_time: int#

表示事件触发时间的时间戳(以秒为单位)。

is_ext_shared_channel: bool#

指示该事件是否属于不同组织之间的共享通道的一部分。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

事件发生的团队ID。

token: str#

用于验证事件来源的令牌。

type: str#

接收到的整体事件类型(例如,‘event_callback’)。

class camel.bots.slack.models.SlackAppMentionEventProfile(*, user: str, type: str, ts: str, thread_ts: str | None = None, client_msg_id: str, text: str, team: str, blocks: list, channel: str, event_ts: str, channel_type: str | None = None)[来源]#

基类:SlackEventProfile

表示Slack事件的详细配置文件,其中应用程序在消息中被提及。

blocks: list#

消息块列表,提供结构化信息。

channel: str#

事件发生的Slack频道ID。

channel_type: str | None#

Slack频道的类型。对于应用提及的情况,它是None。

client_msg_id: str#

由客户端为消息生成的唯一ID(如果可用)。

event_ts: str#

事件发生的具体时间戳。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team: str#

事件关联团队的ID。

text: str#

消息内容文本。

thread_ts: str | None#

线程中父消息的时间戳。

ts: str#

表示事件触发时间的时间戳。

type: str#

事件的类型(例如'message')。

user: str#

与该事件关联的用户ID。

class camel.bots.slack.models.SlackAuthProfile(*, enterprise_id: str | None = None, team_id: str, user_id: str, is_bot: bool, is_enterprise_install: bool)[来源]#

基类:BaseModel

表示Slack事件中的授权配置文件。

事件将包含一个简洁的authorizations字段,显示该事件对其可见的应用程序的一个安装实例。 换句话说,authorizations列表将被截断为单个元素。

如果您的应用正在跟踪多个安装方,最好不要依赖授权中列出的单个方作为任何特定的一方。

要获取可以查看事件的完整列表,请在获取应用级令牌后调用apps.event.authorizations.list方法。有关变更的更多信息请阅读此处;这些变更已于2021年2月24日起对现有应用生效。

参考资料:

enterprise_id: str | None#

与授权关联的企业ID。

is_bot: bool#

授权用户是否为机器人。

is_enterprise_install: bool#

授权是否适用于企业安装。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

与授权关联的团队ID。

user_id: str#

与该授权关联的用户ID。

class camel.bots.slack.models.SlackEventBody(*, token: str, team_id: str, context_team_id: str | None, context_enterprise_id: str | None = None, api_app_id: str, event: SlackEventProfile, type: str, event_id: str, event_time: int, authorizations: list[SlackAuthProfile] | None = None, is_ext_shared_channel: bool, event_context: str)[来源]#

基类:BaseModel

表示Slack事件的整个主体,包括事件配置文件、授权和上下文。

api_app_id: str#

接收事件的Slack应用程序的唯一标识符。

authorizations: list[SlackAuthProfile] | None#

一个可选的授权列表,用于描述哪些安装可以看到该事件。

context_enterprise_id: str | None#

共享频道上下文的企业ID(如适用)。

context_team_id: str | None#

共享频道上下文的团队ID(如果适用)。

event: SlackEventProfile#

事件的详细分析

event_context: str#

表示事件上下文的唯一字符串。

event_id: str#

由Slack分配给此事件的唯一标识符。

event_time: int#

表示事件触发时间的时间戳(以秒为单位)。

is_ext_shared_channel: bool#

指示该事件是否属于不同组织之间的共享通道的一部分。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

事件发生的团队ID。

token: str#

用于验证事件来源的令牌。

type: str#

接收到的整体事件类型(例如,‘event_callback’)。

class camel.bots.slack.models.SlackEventProfile(*, user: str, type: str, ts: str, thread_ts: str | None = None, client_msg_id: str, text: str, team: str, blocks: list, channel: str, event_ts: str, channel_type: str | None)[来源]#

基类:BaseModel

表示Slack事件的详细配置文件,包括用户、消息和上下文数据。

blocks: list#

消息块列表,提供结构化信息。

channel: str#

事件发生的Slack频道ID。

channel_type: str | None#

Slack频道的类型(例如'channel'、'im')。

client_msg_id: str#

由客户端为消息生成的唯一ID(如果可用)。

event_ts: str#

事件发生时的特定时间戳。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team: str#

事件关联团队的ID。

text: str#

消息内容文本。

thread_ts: str | None#

线程中父消息的时间戳。

ts: str#

表示事件触发时间的时间戳。

type: str#

事件的类型(例如'message')。

user: str#

与该事件关联的用户ID。

camel.bots.slack.slack_app 模块#

class camel.bots.slack.slack_app.SlackApp(token: str | None = None, scopes: str | None = None, signing_secret: str | None = None, client_id: str | None = None, client_secret: str | None = None, redirect_uri_path: str = '/slack/oauth_redirect', installation_store: AsyncInstallationStore | None = None)[来源]#

基类:object

表示一个由Slack Bolt AsyncApp驱动的Slack应用。

该类负责通过设置事件处理器、运行应用服务器以及处理来自Slack的消息和提及等事件,来初始化和管理Slack应用程序。

Parameters:
  • token (Optional[str]) – 用于身份验证的Slack API令牌。

  • scopes (可选[str]) – Slack应用的权限范围。

  • signing_secret (Optional[str]) – 用于验证Slack请求的签名密钥。

  • client_id (可选[str]) - Slack应用客户端ID。

  • client_secret (可选[str]) – Slack应用的客户端密钥。

  • redirect_uri_path (str) – OAuth重定向的URI路径,默认为"/slack/oauth_redirect"。

  • installation_store (可选[AsyncInstallationStore]) – 用于处理OAuth安装的安装存储。

async app_mention(context: AsyncBoltContext, client: AsyncWebClient, event: Dict[str, Any], body: Dict[str, Any], say: AsyncSay) None[来源]#

app_mention 事件的事件处理程序。

当有人在Slack中提到该应用时,此方法会被触发。

Parameters:
  • context (AsyncBoltContext) – 该事件的Slack Bolt上下文。

  • client (AsyncWebClient) – Slack Web API客户端。

  • event (Dict[str, Any]) - 应用提及的事件数据。

  • body (Dict[str, Any]) – 来自Slack的完整请求体。

  • say (AsyncSay) – 一个用于向频道发送回复的函数。

async handle_request(request: Request) Response[来源]#

通过请求处理器处理来自Slack的传入请求。

Parameters:

request (Request) – 一个代表传入请求的Starlette请求对象。

Returns:

由Slack Bolt处理器生成的响应。

mention_me(context: AsyncBoltContext, body: SlackEventBody) bool[来源]#

检查消息中是否提到了该机器人。

Parameters:
  • context (AsyncBoltContext) – 事件对应的Slack Bolt上下文。

  • body (SlackEventBody) – Slack事件的主体内容。

Returns:

如果消息中提到该机器人则为True,否则为False。

Return type:

布尔值

async on_message(context: AsyncBoltContext, client: AsyncWebClient, event: Dict[str, Any], body: Dict[str, Any], say: AsyncSay) None[来源]#

message事件的事件处理程序。

当应用在Slack中收到消息时触发此方法。

Parameters:
  • context (AsyncBoltContext) – 该事件的Slack Bolt上下文。

  • client (AsyncWebClient) – Slack Web API客户端。

  • event (Dict[str, Any]) – 消息的事件数据。

  • body (Dict[str, Any]) – 来自Slack的完整请求体。

  • say (AsyncSay) – 一个用于向频道发送回复的函数。

run(port: int = 3000, path: str = '/slack/events', host: str | None = None) None[来源]#

启动Slack Bolt应用服务器以监听传入的Slack事件。

Parameters:
  • port (int) – 服务器运行的端口号(默认为3000)。

  • path (str) – 接收Slack事件的端点路径(默认为"/slack/events")。

  • host (可选[str]) - 要绑定服务器的主机名(默认为None)。

setup_handlers() None[来源]#

为Slack事件设置事件处理器,例如app_mentionmessage

此方法将app_mentionon_message事件处理程序注册到Slack Bolt应用中,以响应Slack事件。

模块内容#

class camel.bots.slack.SlackApp(token: str | None = None, scopes: str | None = None, signing_secret: str | None = None, client_id: str | None = None, client_secret: str | None = None, redirect_uri_path: str = '/slack/oauth_redirect', installation_store: AsyncInstallationStore | None = None)[来源]#

基类:object

表示一个由Slack Bolt AsyncApp驱动的Slack应用。

该类负责通过设置事件处理器、运行应用服务器以及处理来自Slack的消息和提及等事件,来初始化和管理Slack应用程序。

Parameters:
  • token (Optional[str]) – 用于身份验证的Slack API令牌。

  • scopes (可选[str]) – Slack应用的权限范围。

  • signing_secret (Optional[str]) – 用于验证Slack请求的签名密钥。

  • client_id (可选[str]) - Slack应用客户端ID。

  • client_secret (可选[str]) – Slack应用的客户端密钥。

  • redirect_uri_path (str) – OAuth重定向的URI路径,默认为"/slack/oauth_redirect"。

  • installation_store (可选[AsyncInstallationStore]) – 用于处理OAuth安装的安装存储。

async app_mention(context: AsyncBoltContext, client: AsyncWebClient, event: Dict[str, Any], body: Dict[str, Any], say: AsyncSay) None[来源]#

app_mention 事件的事件处理程序。

当有人在Slack中提到该应用时,此方法会被触发。

Parameters:
  • context (AsyncBoltContext) – 该事件的Slack Bolt上下文。

  • client (AsyncWebClient) – Slack Web API客户端。

  • event (Dict[str, Any]) - 应用提及的事件数据。

  • body (Dict[str, Any]) – 来自Slack的完整请求体。

  • say (AsyncSay) – 一个用于向频道发送回复的函数。

async handle_request(request: Request) Response[来源]#

通过请求处理器处理来自Slack的传入请求。

Parameters:

request (Request) – 一个代表传入请求的Starlette请求对象。

Returns:

由Slack Bolt处理器生成的响应。

mention_me(context: AsyncBoltContext, body: SlackEventBody) bool[来源]#

检查消息中是否提到了该机器人。

Parameters:
  • context (AsyncBoltContext) – 该事件的Slack Bolt上下文。

  • body (SlackEventBody) – Slack事件的主体内容。

Returns:

如果消息中提到该机器人则为True,否则为False。

Return type:

布尔值

async on_message(context: AsyncBoltContext, client: AsyncWebClient, event: Dict[str, Any], body: Dict[str, Any], say: AsyncSay) None[来源]#

message事件的事件处理程序。

当应用在Slack中收到消息时触发此方法。

Parameters:
  • context (AsyncBoltContext) – 该事件的Slack Bolt上下文。

  • client (AsyncWebClient) – Slack Web API客户端。

  • event (Dict[str, Any]) - 消息的事件数据。

  • body (Dict[str, Any]) – 来自Slack的完整请求体。

  • say (AsyncSay) – 一个用于向频道发送回复的函数。

run(port: int = 3000, path: str = '/slack/events', host: str | None = None) None[来源]#

启动Slack Bolt应用服务器以监听传入的Slack事件。

Parameters:
  • port (int) – 服务器运行的端口号(默认为3000)。

  • path (str) – 接收Slack事件的端点路径(默认为"/slack/events")。

  • host (可选[str]) – 要绑定服务器的主机名(默认为None)。

setup_handlers() None[来源]#

为Slack事件设置事件处理程序,例如app_mentionmessage

此方法向Slack Bolt应用注册app_mentionon_message事件处理程序,以响应Slack事件。

class camel.bots.slack.SlackAppMentionEventBody(*, token: str, team_id: str, context_team_id: str | None = None, context_enterprise_id: str | None = None, api_app_id: str, event: SlackAppMentionEventProfile, type: str, event_id: str, event_time: int, authorizations: list[SlackAuthProfile] | None = None, is_ext_shared_channel: bool, event_context: str)[来源]#

基类: SlackEventBody

表示Slack事件中提及该应用的整个消息体。

api_app_id: str#

接收事件的Slack应用程序的唯一标识符。

authorizations: list[SlackAuthProfile] | None#

一个可选的授权列表,用于描述哪些安装可以看到该事件。

context_enterprise_id: str | None#

共享频道上下文的企业ID(如适用)。

context_team_id: str | None#

事件的详细资料。对于应用提及(app mentions)则为None。

event: SlackAppMentionEventProfile#

事件的详细分析

event_context: str#

表示事件上下文的唯一字符串。

event_id: str#

由Slack分配给此事件的唯一标识符。

event_time: int#

表示事件触发时间的时间戳(以秒为单位)。

is_ext_shared_channel: bool#

指示该事件是否属于不同组织之间的共享通道的一部分。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

事件发生的团队ID。

token: str#

用于验证事件来源的令牌。

type: str#

接收到的整体事件类型(例如,‘event_callback’)。

class camel.bots.slack.SlackAppMentionEventProfile(*, user: str, type: str, ts: str, thread_ts: str | None = None, client_msg_id: str, text: str, team: str, blocks: list, channel: str, event_ts: str, channel_type: str | None = None)[来源]#

基类:SlackEventProfile

表示Slack事件的详细配置文件,其中应用程序在消息中被提及。

blocks: list#

消息块列表,提供结构化信息。

channel: str#

事件发生的Slack频道ID。

channel_type: str | None#

Slack频道的类型。对于应用提及的情况,它是None。

client_msg_id: str#

由客户端为消息生成的唯一ID(如果可用)。

event_ts: str#

事件发生时的特定时间戳。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team: str#

事件关联团队的ID。

text: str#

消息内容文本。

thread_ts: str | None#

线程中父消息的时间戳。

ts: str#

表示事件触发时间的时间戳。

type: str#

事件的类型(例如'message')。

user: str#

与该事件关联的用户ID。

class camel.bots.slack.SlackAuthProfile(*, enterprise_id: str | None = None, team_id: str, user_id: str, is_bot: bool, is_enterprise_install: bool)[来源]#

基类:BaseModel

表示Slack事件中的授权配置文件。

事件将包含一个简洁的authorizations字段,显示该事件对其可见的应用程序的一个安装实例。 换句话说,authorizations列表将被截断为单个元素。

如果您的应用正在跟踪多个安装方,最好不要依赖授权中列出的单个方作为任何特定的一方。

要获取可以查看事件的完整列表,请在获取应用级令牌后调用apps.event.authorizations.list方法。有关变更的更多信息请阅读此处;这些变更已于2021年2月24日起对现有应用生效。

参考资料:

enterprise_id: str | None#

与授权关联的企业ID。

is_bot: bool#

授权用户是否为机器人。

is_enterprise_install: bool#

授权是否适用于企业安装。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

与授权关联的团队ID。

user_id: str#

与该授权关联的用户ID。

class camel.bots.slack.SlackEventBody(*, token: str, team_id: str, context_team_id: str | None, context_enterprise_id: str | None = None, api_app_id: str, event: SlackEventProfile, type: str, event_id: str, event_time: int, authorizations: list[SlackAuthProfile] | None = None, is_ext_shared_channel: bool, event_context: str)[来源]#

基类:BaseModel

表示Slack事件的整个主体,包括事件配置文件、授权和上下文。

api_app_id: str#

接收事件的Slack应用程序的唯一标识符。

authorizations: list[SlackAuthProfile] | None#

一个可选的授权列表,用于描述哪些安装可以看到该事件。

context_enterprise_id: str | None#

共享频道上下文的企业ID(如适用)。

context_team_id: str | None#

共享频道上下文的团队ID(如果适用)。

event: SlackEventProfile#

事件的详细分析

event_context: str#

表示事件上下文的唯一字符串。

event_id: str#

由Slack分配给此事件的唯一标识符。

event_time: int#

表示事件触发时间的时间戳(以秒为单位)。

is_ext_shared_channel: bool#

指示该事件是否属于不同组织之间的共享通道的一部分。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team_id: str#

事件发生的团队ID。

token: str#

用于验证事件来源的令牌。

type: str#

接收到的整体事件类型(例如,‘event_callback’)。

class camel.bots.slack.SlackEventProfile(*, user: str, type: str, ts: str, thread_ts: str | None = None, client_msg_id: str, text: str, team: str, blocks: list, channel: str, event_ts: str, channel_type: str | None)[来源]#

基类:BaseModel

表示Slack事件的详细配置文件,包括用户、消息和上下文数据。

blocks: list#

消息块列表,提供结构化信息。

channel: str#

事件发生的Slack频道ID。

channel_type: str | None#

Slack频道的类型(例如'channel'、'im')。

client_msg_id: str#

由客户端为消息生成的唯一ID(如果可用)。

event_ts: str#

事件发生时的特定时间戳。

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

team: str#

事件关联团队的ID。

text: str#

消息内容文本。

thread_ts: str | None#

线程中父消息的时间戳。

ts: str#

表示事件触发时间的时间戳。

type: str#

事件的类型(例如'message')。

user: str#

与该事件关联的用户ID。