{ "id": "googlechat", "name": "Google Chat", "version": "1.0.0", "description": "Google Chat 渠道插件,支持通过 Google Chat API 收发消息、卡片交互和线程对话。", "author": "Yuxi Team", "license": "MIT", "entry_point": "yuxi.channel.extensions.googlechat", "capabilities": { "chat_types": ["direct", "group", "thread"], "message_types": ["text", "image", "file", "video"], "interactions": [], "reactions": true, "typing_indicator": true, "threads": true, "edit": true, "unsend": true, "reply": true, "media": true, "native_commands": false, "polls": false, "group_management": false, "streaming": false, "streaming_mode": null, "block_streaming": true, "block_streaming_chunk_min_chars": 4000, "block_streaming_chunk_max_chars": 4000, "block_streaming_coalesce_min_chars": 1500, "block_streaming_coalesce_max_chars": 4000, "adaptive_cards": true, "sse_support": false }, "config_schema": { "type": "object", "properties": { "service_account_json": { "type": "string", "title": "Service Account JSON", "description": "Google Cloud Service Account 凭证 JSON 字符串或文件路径", "format": "textarea" }, "space_allowlist": { "type": "array", "title": "Space Allowlist", "description": "允许访问的 Google Chat Space ID 列表", "items": { "type": "string" } }, "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" }, "webhook_secret": { "type": "string", "title": "Webhook Secret", "description": "Google Chat webhook 验证密钥", "format": "password" }, "bot_name": { "type": "string", "title": "Bot Name", "description": "机器人在 Google Chat 中显示的名称", "default": "Yuxi Bot" }, "avatar_url": { "type": "string", "title": "Avatar URL", "description": "机器人头像 URL", "format": "uri" }, "auto_join_spaces": { "type": "boolean", "title": "Auto Join Spaces", "description": "是否自动加入邀请的 Space", "default": true }, "card_response_enabled": { "type": "boolean", "title": "Card Response Enabled", "description": "是否启用卡片消息响应", "default": true }, "threading_enabled": { "type": "boolean", "title": "Threading Enabled", "description": "是否启用线程对话支持", "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": 4096, "minimum": 100, "maximum": 4096 }, "rate_limit_per_minute": { "type": "integer", "title": "Rate Limit Per Minute", "description": "每分钟最大请求数", "default": 60, "minimum": 10, "maximum": 300 } }, "required": ["service_account_json"] }, "webhook": { "enabled": true, "path": "/webhooks/googlechat", "methods": ["POST"], "auth_type": "hmac", "secret_header": "X-Goog-Signature" }, "dependencies": ["httpx", "google-auth"], "min_api_version": "1.0.0", "documentation_url": "https://developers.google.com/chat", "icon": "googlechat", "color": "#00832d", "tags": ["google", "chat", "workspace", "enterprise"], "features": { "rich_text": false, "markdown_support": true, "html_support": true, "emoji_support": true, "file_sharing": true, "voice_messages": false, "video_messages": false, "location_sharing": false, "contact_cards": false, "message_search": true, "threaded_replies": true, "message_editing": true, "message_deletion": true, "typing_indicators": true, "read_receipts": false, "delivery_receipts": true, "bot_commands": true, "slash_commands": true, "interactive_cards": true, "buttons": true, "quick_replies": false, "menus": false, "forms": true, "polls": false, "scheduling": false, "reminders": false, "notifications": true, "mentions": true, "hashtags": false, "custom_status": false, "presence_indicators": false, "user_profiles": true, "group_profiles": true, "channel_directory": false, "guest_access": true, "single_sign_on": true, "two_factor_auth": true, "end_to_end_encryption": false, "data_residency": true, "gdpr_compliant": true, "hipaa_compliant": false, "soc2_compliant": true, "iso27001_compliant": true } }