机器人
机器人和其他成员一样
在工作区设置中创建机器人并赋予角色,它就会通过与应用相同的 API 工作:聊天、任务、日历、成员和语音。
权限来自角色,与普通成员相同:机器人只能看到允许它进入的房间。
机器人
聊天
读写它有权访问的所有房间和私信中的消息,回复、添加表情回应、发送文件和贴纸。事件通过 WebSocket 实时送达。
任务
在看板上创建和修改任务、指派负责人、评论和搜索。机器人看到的看板与拥有相同角色的人一致。
语音
通过 LiveKit 进入语音房间:能听到参与者,也能发言——文字转语音、回声、音乐、录音。支持 Node、Python 和 Go。
日历
安排和改期会议,查看空闲/忙碌,并为多人查找合适的时间。机器人是组织者,邮件“代表机器人”发出。
成员
查看成员资料及其未完成的任务,重命名,通过链接和邮件邀请,颁发徽章——均在角色权限范围内。
会议录制
开始和停止语音房间的录制——转写和摘要会以卡片形式发到聊天中。需要“录制”权限。
命令与按钮
注册 /命令,输入“/”时编辑器会提示;并在消息下方添加按钮——点击会作为事件发给机器人。
Webhook
无需长连接:事件以带 HMAC 签名的 POST 请求送达,失败时自动重试。适合 serverless。
@calaba/bot-sdk
TypeScript 编写的站会机器人
import { Bot } from '@calaba/bot-sdk';const bot = new Bot(process.env.BOT_TOKEN, { server: 'https://app.calab.io',});await bot.commands([{ name: 'standup', description: 'Start' }]);// "/standup" → a message with a buttonbot.on('command', (c) => bot.send(c.message.roomId, { text: 'Stand-up time. Record it?', inlineKeyboard: { rows: [{ buttons: [ { id: 'rec', label: 'Record', data: 'standup' }, ] }] }, }),);// pressed → start the meeting recordingbot.on('callback', (cb) => { if (cb.buttonId === 'rec') bot.recording.start(cb.roomId);});await bot.start();机器人
5 分钟创建第一个机器人
令牌、REST、事件、webhook、按钮、语音、限额和错误码——都在文档中。