需完成oauth授权、webhook配置及权限设置:一、slack中创建应用并添加chat:write等bot权限,获取xoxb-token;二、discord中创建bot并启用message content intent,获取mt-token与application id;三、启用slack事件订阅和discord privileged intents,配置https端点接收事件;四、在后台设置指令映射与slack blocks/discord embed响应模板,并注册slash command;五、通过redis缓存关联slack user_id与discord user.id至统一uid,实现跨平台身份同步与上下文一致性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您希望将龙虾机器人与Slack或Discord平台连接,以实现社区消息自动响应、状态同步与任务分发,则需完成对应平台的OAuth授权、Webhook配置及机器人权限设置。以下是具体实施步骤:
一、在Slack中配置龙虾机器人
Slack通过Bot Token机制授予机器人访问工作区的能力,需在Slack API控制台创建应用并启用Bot功能,确保其具备发送消息、读取频道历史等必要权限。
1、访问Slack API网站,点击“Create New App”,选择“From scratch”,填写应用名称(如“LobsterBot”)和开发工作区。
2、进入“OAuth & Permissions”页面,在“Bot Token Scopes”区域添加以下权限:chat:write、channels:read、groups:read、im:read、reactions:read。
3、滚动至页面底部,点击“Install to Workspace”,确认授权;安装完成后复制生成的xoxb-开头的Bot User OAuth Token。
4、在龙虾机器人后台的Slack集成模块中,粘贴该Token,并保存配置。
二、在Discord中配置龙虾机器人
Discord使用Application Bot模型,需通过Discord Developer Portal创建应用、添加机器人用户,并通过OAuth2链接将机器人邀请至目标服务器,同时启用Privileged Intents以支持消息内容读取。
1、登录Discord Developer Portal,点击“New Application”,输入名称后进入设置页。
2、左侧菜单选择“Bot”,点击“Add Bot”,确认创建;在“Token”区域点击“Copy”,保存该以MT开头的长字符串Token。
3、返回“General Information”,复制“Application ID”;前往“OAuth2 → URL Generator”,勾选“bot”授权类型,并在“Bot Permissions”中至少启用:Send Messages、Read Message History、Manage Webhooks、Use Slash Commands。
4、生成OAuth2链接并打开,选择目标Discord服务器完成邀请;随后在龙虾机器人后台的Discord集成页填入Application ID、Bot Token及服务器ID。
三、启用事件订阅与消息路由
为使龙虾机器人能实时响应用户指令,需在Slack与Discord侧分别启用事件订阅功能,并将事件推送至龙虾机器人指定的HTTPS端点,由其解析事件类型并触发对应逻辑。
1、在Slack应用的“Event Subscriptions”页面,开启Events API,填入龙虾机器人提供的/slack/events 接收地址,并验证请求签名。
2、在该页面的“Subscribe to Workspace Events”中添加以下事件:message.channels、message.groups、reaction_added、app_mention。
3、在Discord开发者面板的“Privileged Gateway Intents”中,手动开启MESSAGE CONTENT INTENT(需提交审核或用于已验证应用)。
4、确保龙虾机器人服务端已部署WebSocket监听器或HTTP事件处理器,能接收并区分来自Slack与Discord的JSON格式事件载荷。
四、配置社区指令映射与响应模板
龙虾机器人需识别不同平台用户输入的自然语言指令,并将其映射为预定义动作(如查询公告、登记反馈、触发CI构建),响应内容须适配各平台的消息格式限制与富文本能力。
1、在龙虾机器人管理后台的“Command Registry”中,新增指令条目,例如关键字为“status”,匹配规则设为正则表达式 /status\s*(\w*)/i。
2、为该指令绑定执行脚本路径,并在“Response Template”字段中分别设置Slack与Discord专属输出:Slack支持blocks JSON结构,Discord支持embed格式,二者均需包含标题、字段与颜色标识。
3、针对Discord的slash command,需调用Discord REST API向应用注册命令,使用POST /applications/{app_id}/guilds/{guild_id}/commands接口提交命令元数据。
4、测试时在Slack频道输入“/lobster status prod”,在Discord中输入“/status environment:staging”,验证响应是否准确投递且格式合规。
五、设置跨平台身份关联与上下文同步
为保障用户在Slack与Discord中使用同一账户触发操作时行为一致,需建立外部ID映射表,将各平台用户唯一标识(如Slack user_id、Discord user.id)关联至统一内部UID,并同步会话状态与偏好设置。
1、龙虾机器人首次收到Slack用户消息时,提取event.user字段值,结合team_id生成哈希键;首次收到Discord Interaction时,提取member.user.id与guild_id生成对应键。
2、将两组键写入Redis缓存,键名为identity_map:{platform}:{id},值为统一UID,TTL设为30天。
3、当用户在任一平台发起带身份的操作(如“/subscribe news”),机器人查表获取UID,读取其订阅列表,并将变更同步写回所有已绑定平台的对应频道。
4、在管理后台“Identity Sync”面板中,可手动触发双向ID校验,并查看最近72小时的关联成功率与失败原因日志。










