57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
|
|
"""Slack 厂商集成元数据。
|
|||
|
|
|
|||
|
|
定义 ``IntegrationMetadata(key="slack", ...)``,由 ``__init__.py`` 自注册到
|
|||
|
|
``IntegrationRegistry``。元数据为内存态,不持久化到数据库。
|
|||
|
|
|
|||
|
|
``connection_extra_schema`` 声明 ``base_url``(必填)与 ``team_id``(可选)两个
|
|||
|
|
连接配置额外字段:
|
|||
|
|
- ``base_url``:Slack Web API 基础 URL,默认 ``https://slack.com/api``。
|
|||
|
|
- ``team_id``:工作区 ID,多 workspace 安装时用于路由 Token。
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from __future__ import annotations
|
|||
|
|
|
|||
|
|
from yuxi.external_systems.integrations.schemas import IntegrationMetadata
|
|||
|
|
from yuxi.external_systems.integrations.slack.constants import BASE_URL
|
|||
|
|
|
|||
|
|
SLACK_METADATA = IntegrationMetadata(
|
|||
|
|
key="slack",
|
|||
|
|
display_name="Slack",
|
|||
|
|
description="Slack 协作平台集成,支持消息发送、频道管理、文件上传与事件订阅",
|
|||
|
|
adapter_type="http",
|
|||
|
|
source_types=["slack"],
|
|||
|
|
supported_auth_types=[
|
|||
|
|
"oauth2_authorization_code",
|
|||
|
|
"slack_bot_token",
|
|||
|
|
"slack_app_token",
|
|||
|
|
],
|
|||
|
|
tags=["collaboration", "im", "notification"],
|
|||
|
|
icon="slack",
|
|||
|
|
docs_url="https://api.slack.com/web",
|
|||
|
|
connection_extra_schema={
|
|||
|
|
"type": "object",
|
|||
|
|
"properties": {
|
|||
|
|
"base_url": {
|
|||
|
|
"type": "string",
|
|||
|
|
"default": BASE_URL,
|
|||
|
|
"description": "Slack Web API 基础 URL",
|
|||
|
|
},
|
|||
|
|
"team_id": {
|
|||
|
|
"type": "string",
|
|||
|
|
"description": "工作区 ID(多 workspace 安装时用于路由 Token)",
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
"required": ["base_url"],
|
|||
|
|
},
|
|||
|
|
example_config={
|
|||
|
|
"base_url": BASE_URL,
|
|||
|
|
"team_id": "T00000000",
|
|||
|
|
},
|
|||
|
|
dependency_note=(
|
|||
|
|
"1. 至少配置一种认证方式(oauth2_authorization_code / slack_bot_token / slack_app_token);"
|
|||
|
|
"2. Socket Mode 需额外配置 slack_app_token(xapp-...,需 connections:write scope);"
|
|||
|
|
"3. Bot Token 推荐 scope:chat:write / channels:read / users:read / files:write;"
|
|||
|
|
"4. 读取用户 email 需额外申请 users:read.email scope。"
|
|||
|
|
),
|
|||
|
|
)
|