新增 LINE 渠道扩展,支持在 Yuxi 平台中集成 LINE 即时通讯渠道。 包含以下功能模块: - bot: LINE Bot 客户端封装 - config: 渠道配置管理 - gateway: SSE/WebSocket 网关接入 - webhook: Webhook 事件处理 - outbound: 外发消息管理 - streaming: 流式消息处理 - pairing: 用户配对与绑定 - security: 安全校验 - signature: 请求签名验证 - token_manager: Token 管理 - dedupe: 消息去重 - monitor: 渠道状态监控 - status: 会话状态管理 - session: 会话管理 - flex_templates: Flex 模板消息 - card_command: 卡片指令处理 - template_messages: 模板消息 - rich_menu: 富菜单管理 - actions: 动作处理 - directives: 指令处理 - delivery: 消息送达确认 - loading: 加载动画 - media: 媒体资源处理 - types: 类型定义
229 lines
6.8 KiB
JSON
229 lines
6.8 KiB
JSON
{
|
||
"id": "line",
|
||
"name": "LINE",
|
||
"version": "1.0.0",
|
||
"description": "LINE 渠道插件,支持 Messaging API 收发消息、Rich Menu、Flex Message、Quick Replies 等高级功能。",
|
||
"author": "Yuxi Team",
|
||
"license": "MIT",
|
||
"entry_point": "yuxi.channel.extensions.line",
|
||
"capabilities": {
|
||
"chat_types": ["direct", "group", "room"],
|
||
"message_types": ["text", "image", "video", "audio", "file", "location", "sticker", "template", "flex"],
|
||
"interactions": ["button", "quick_reply", "carousel", "image_carousel", "confirm"],
|
||
"reactions": false,
|
||
"typing_indicator": false,
|
||
"threads": false,
|
||
"edit": false,
|
||
"unsend": false,
|
||
"reply": true,
|
||
"media": true,
|
||
"native_commands": false,
|
||
"polls": false,
|
||
"group_management": false,
|
||
"streaming": true,
|
||
"streaming_mode": "block",
|
||
"block_streaming": true,
|
||
"block_streaming_chunk_min_chars": 800,
|
||
"block_streaming_chunk_max_chars": 1200,
|
||
"block_streaming_chunk_break_preference": "paragraph",
|
||
"block_streaming_coalesce_min_chars": 400,
|
||
"block_streaming_coalesce_max_chars": 800,
|
||
"block_streaming_coalesce_idle_ms": 500,
|
||
"tts": null
|
||
},
|
||
"config_schema": {
|
||
"type": "object",
|
||
"properties": {
|
||
"channel_access_token": {
|
||
"type": "string",
|
||
"title": "Channel Access Token",
|
||
"description": "LINE Channel Access Token(长期或短期令牌)",
|
||
"format": "password"
|
||
},
|
||
"channel_secret": {
|
||
"type": "string",
|
||
"title": "Channel Secret",
|
||
"description": "LINE Channel Secret,用于验证 webhook 签名",
|
||
"format": "password"
|
||
},
|
||
"channel_id": {
|
||
"type": "string",
|
||
"title": "Channel ID",
|
||
"description": "LINE Channel ID"
|
||
},
|
||
"liff_id": {
|
||
"type": "string",
|
||
"title": "LIFF App ID",
|
||
"description": "LINE Front-end Framework App ID(可选)"
|
||
},
|
||
"dm_policy": {
|
||
"type": "string",
|
||
"title": "DM Policy",
|
||
"description": "私信访问控制策略",
|
||
"enum": ["open", "pairing", "closed"],
|
||
"default": "pairing"
|
||
},
|
||
"group_policy": {
|
||
"type": "string",
|
||
"title": "Group Policy",
|
||
"description": "群组访问控制策略",
|
||
"enum": ["open", "allowlist", "closed"],
|
||
"default": "allowlist"
|
||
},
|
||
"allow_from": {
|
||
"type": "array",
|
||
"title": "Allow From",
|
||
"description": "允许访问的用户 ID 列表",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"group_allowlist": {
|
||
"type": "array",
|
||
"title": "Group Allowlist",
|
||
"description": "允许访问的群组/聊天室 ID 列表",
|
||
"items": {
|
||
"type": "string"
|
||
}
|
||
},
|
||
"auto_reply_enabled": {
|
||
"type": "boolean",
|
||
"title": "Auto Reply Enabled",
|
||
"description": "是否启用自动回复",
|
||
"default": true
|
||
},
|
||
"greeting_message": {
|
||
"type": "string",
|
||
"title": "Greeting Message",
|
||
"description": "用户添加好友时的欢迎消息",
|
||
"default": "Hello! Thanks for adding me as a friend. How can I help you today?"
|
||
},
|
||
"rich_menu_enabled": {
|
||
"type": "boolean",
|
||
"title": "Rich Menu Enabled",
|
||
"description": "是否启用 Rich Menu 功能",
|
||
"default": false
|
||
},
|
||
"rich_menu_config": {
|
||
"type": "object",
|
||
"title": "Rich Menu Config",
|
||
"description": "Rich Menu 配置对象"
|
||
},
|
||
"flex_message_enabled": {
|
||
"type": "boolean",
|
||
"title": "Flex Message Enabled",
|
||
"description": "是否启用 Flex Message 功能",
|
||
"default": true
|
||
},
|
||
"quick_reply_enabled": {
|
||
"type": "boolean",
|
||
"title": "Quick Reply Enabled",
|
||
"description": "是否启用 Quick Reply 功能",
|
||
"default": true
|
||
},
|
||
"mention_required_in_groups": {
|
||
"type": "boolean",
|
||
"title": "Mention Required in Groups",
|
||
"description": "群组中是否需要 @提及 机器人才响应",
|
||
"default": true
|
||
},
|
||
"max_message_length": {
|
||
"type": "integer",
|
||
"title": "Max Message Length",
|
||
"description": "单条消息最大字符数",
|
||
"default": 2000,
|
||
"minimum": 100,
|
||
"maximum": 5000
|
||
},
|
||
"rate_limit_per_minute": {
|
||
"type": "integer",
|
||
"title": "Rate Limit Per Minute",
|
||
"description": "每分钟最大请求数",
|
||
"default": 1000,
|
||
"minimum": 100,
|
||
"maximum": 5000
|
||
},
|
||
"api_timeout_seconds": {
|
||
"type": "integer",
|
||
"title": "API Timeout Seconds",
|
||
"description": "API 请求超时时间(秒)",
|
||
"default": 30,
|
||
"minimum": 5,
|
||
"maximum": 120
|
||
},
|
||
"loading_animation_enabled": {
|
||
"type": "boolean",
|
||
"title": "Loading Animation Enabled",
|
||
"description": "是否启用加载动画",
|
||
"default": true
|
||
},
|
||
"emoji_conversion_enabled": {
|
||
"type": "boolean",
|
||
"title": "Emoji Conversion Enabled",
|
||
"description": "是否启用 Unicode Emoji 自动转换",
|
||
"default": true
|
||
}
|
||
},
|
||
"required": ["channel_access_token", "channel_secret"]
|
||
},
|
||
"webhook": {
|
||
"enabled": true,
|
||
"path": "/webhooks/line",
|
||
"methods": ["POST"],
|
||
"auth_type": "signature",
|
||
"signature_header": "X-Line-Signature",
|
||
"signature_algorithm": "HMAC-SHA256"
|
||
},
|
||
"dependencies": [],
|
||
"min_api_version": "1.0.0",
|
||
"documentation_url": "https://developers.line.biz/en/docs/messaging-api/",
|
||
"icon": "line",
|
||
"color": "#06C755",
|
||
"tags": ["line", "messaging-api", "japan", "asia", "mobile"],
|
||
"features": {
|
||
"rich_text": false,
|
||
"markdown_support": false,
|
||
"html_support": false,
|
||
"emoji_support": true,
|
||
"file_sharing": true,
|
||
"voice_messages": true,
|
||
"video_messages": true,
|
||
"location_sharing": true,
|
||
"contact_cards": true,
|
||
"message_search": false,
|
||
"threaded_replies": false,
|
||
"message_editing": false,
|
||
"message_deletion": true,
|
||
"typing_indicators": true,
|
||
"read_receipts": false,
|
||
"delivery_receipts": true,
|
||
"bot_commands": false,
|
||
"slash_commands": false,
|
||
"interactive_cards": true,
|
||
"buttons": true,
|
||
"quick_replies": true,
|
||
"menus": true,
|
||
"forms": false,
|
||
"polls": false,
|
||
"scheduling": false,
|
||
"reminders": false,
|
||
"notifications": true,
|
||
"mentions": true,
|
||
"hashtags": false,
|
||
"custom_status": false,
|
||
"presence_indicators": false,
|
||
"user_profiles": true,
|
||
"group_profiles": false,
|
||
"channel_directory": false,
|
||
"guest_access": false,
|
||
"single_sign_on": false,
|
||
"two_factor_auth": false,
|
||
"end_to_end_encryption": true,
|
||
"data_residency": true,
|
||
"gdpr_compliant": true,
|
||
"hipaa_compliant": false,
|
||
"soc2_compliant": true,
|
||
"iso27001_compliant": true
|
||
}
|
||
}
|