跳到正文
Calab

机器人

机器人和其他成员一样

在工作区设置中创建机器人并赋予角色,它就会通过与应用相同的 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();
回声机器人、语音示例和 Python 监听器见 examples/bots。完整的端点与事件参考见文档。

机器人

5 分钟创建第一个机器人

令牌、REST、事件、webhook、按钮、语音、限额和错误码——都在文档中。