概述
Channels API 允许您将 Shannon 与外部消息平台集成。创建 Channel 以连接 Slack 工作区或 LINE 账户,Shannon 将通过其 Agent 系统自动处理传入的消息。功能特性
- Slack 集成,支持事件订阅和 Bot 消息
- LINE 集成,基于 Webhook 的消息处理
- HMAC 签名验证,确保入站 Webhook 安全
- Agent 路由,通过
agent_name配置将消息定向到指定 Agent - 用户隔离,每个用户的 type + name 组合唯一
- 凭据安全 — 凭据永远不会在 API 响应中暴露
创建 Channel
创建新的消息 Channel。请求体
响应
出于安全考虑,
credentials 字段永远不会在 API 响应中返回。请在您自己的系统中安全存储凭据。列出 Channel
列出当前认证用户的所有 Channel。响应
获取 Channel
获取指定 Channel 的详细信息。响应
更新 Channel
更新现有 Channel。所有字段均为可选 — 仅更新提供的字段。请求体
响应
返回更新后的 Channel 对象(与获取 Channel 的响应格式相同)。删除 Channel
永久删除一个 Channel。响应
Response
入站 Webhook
接收来自外部平台的消息。当用户在 Slack 或 LINE 中发送消息时,平台会调用此端点。响应
凭据格式
Slack 凭据
LINE 凭据
Webhook 行为
Slack
- 签名验证:使用 Channel 的
signing_secret通过 HMAC-SHA256 验证X-Slack-Request-Timestamp和X-Slack-Signature请求头 - 时钟偏差:超过 5 分钟的请求将被拒绝
- URL 验证:在应用设置期间自动响应 Slack 的
url_verificationchallenge - Bot 过滤:忽略来自 Bot 的消息以防止循环
- 支持的事件:
message和app_mention
LINE
- 签名验证:使用 Channel 的
channel_secret通过 HMAC-SHA256(base64 编码)验证X-Line-Signature请求头 - 回复行为:使用 Reply Token 立即发送 “Thinking…” 回复
- 消息处理:处理事件载荷中的第一条文本消息
Agent 路由
在 Channel 的config 中设置 agent_name 字段,将传入消息路由到指定的 Agent:
agent_name,消息将由 Shannon 的默认 Agent 路由处理。
Channel 响应对象
错误响应
所有错误遵循标准格式:
后续步骤
提交任务
通过 API 直接提交任务
智能体
配置 Agent 用于 Channel 路由