kirara_ai/web/api/im/README.md
即时通讯 API 提供了管理 IM 后端和适配器的功能。通过这些 API,你可以注册、配置和管理不同的 IM 平台适配器。
GET/backend-api/api/im/types
获取所有可用的 IM 适配器类型。
响应示例:
{
"types": [
"mirai",
"telegram",
"discord"
]
}
GET/backend-api/api/im/adapters
获取所有已配置的 IM 适配器信息。
响应示例:
{
"adapters": [
{
"name": "telegram",
"adapter": "telegram",
"config": {
"token": "your-bot-token",
},
"is_running": true
}
]
}
GET/backend-api/api/im/adapters/{adapter_id}
获取指定适配器的详细信息。
响应示例:
{
"adapter": {
"name": "telegram",
"adapter": "telegram",
"config": {
"token": "your-bot-token",
},
"is_running": true
}
}
POST/backend-api/api/im/adapters
注册新的 IM 适配器。
请求体:
{
"name": "telegram",
"adapter": "telegram",
"config": {
"token": "your-bot-token",
}
}
PUT/backend-api/api/im/adapters/{adapter_id}
更新现有适配器的配置。如果适配器正在运行,会自动重启以应用新配置。
请求体:
{
"name": "telegram",
"adapter": "telegram",
"config": {
"token": "your-bot-token",
}
}
DELETE/backend-api/api/im/adapters/{adapter_id}
删除指定的适配器。如果适配器正在运行,会先自动停止。
POST/backend-api/api/im/adapters/{adapter_id}/start
启动指定的适配器。
POST/backend-api/api/im/adapters/{adapter_id}/stop
停止指定的适配器。
GET/backend-api/api/im/types/{adapter_type}/config-schema
获取指定适配器类型的配置字段模式。
响应示例:
{
"schema": {
"title": "TelegramConfig",
"type": "object",
"properties": {
"token": {
"title": "Bot Token",
"type": "string",
"description": "Telegram Bot Token"
}
},
"required": ["token"]
}
}
name: 适配器名称adapter: 适配器类型config: 配置信息(字典)继承自 IMAdapterConfig,额外包含:
is_running: 适配器是否正在运行adapters: IM 适配器列表adapter: 适配器信息types: 可用的适配器类型列表error: 错误信息(可选)schema: JSON Schema 格式的配置字段描述适配器由插件提供,见适配器实现。
所有 API 端点在发生错误时都会返回适当的 HTTP 状态码和错误信息:
{
"error": "错误描述信息"
}
常见状态码:
import requests
response = requests.get(
'http://localhost:8080/api/im/types',
headers={'Authorization': f'Bearer {token}'}
)
import requests
adapter_data = {
"name": "telegram",
"adapter": "telegram",
"config": {
"token": "your-bot-token",
"webhook_url": "https://example.com/webhook"
}
}
response = requests.post(
'http://localhost:8080/api/im/adapters',
headers={'Authorization': f'Bearer {token}'},
json=adapter_data
)
import requests
response = requests.post(
'http://localhost:8080/api/im/adapters/telegram/start',
headers={'Authorization': f'Bearer {token}'}
)