Google Wave Robots API V2 不对 V1 向后兼容,而是提供了一些新特性,如活动 API 、上下文、过滤、错误报告以及 Proxying-For。开发者除了使用 Java 和 Python 客户库等便利的方法创建机器人之外,还可以基于 Robot Wire 协议创建自己的库。
_ 机器人 _ 是一个自动的 wave 参与者,它是一个服务端应用程序,可以创建 wave 并与之进行交互。例如,它可以添加 / 删除参与者、创建 / 修改 blip(Blip 是 wave 中的最小的会话单元)以及以 wave 的身份与外界交互。Google 已经把机器人 API 升级到 Robots API V2 ,该版本不对 V1 向后兼容。Google 邀请所有开发者在 2010 年 6 月 30 日之前将代码移植到新版本,到那时旧版本将不再使用。
Robots API V2 中新增的特性有:
- 活动 API:在 V2 中,现在机器人可以向 wave 推送信息(而不需要等待用户的动作)。它替代了我们不推荐的 cron API,现在你可以在天气变化时或股价跌破某阈值时更新 wave。你可以从 Active API 文档中了解更多。
- 上下文:机器人可以更精确地确定他们期望从某个特定的事件返回的信息。如果仅需对受影响的 blip 进行更新而且你要降低机器人使用的带宽,那么你就可以指定新的“SELF”上下文。另一方面,如果你需要 wavelet 中的所有信息,你可以指定“ALL”上下文。你可以从 Context 文档中了解更多信息。
- 过滤:类似地,有了此 API,机器人可以指定响应哪些事件,从而节约珍贵的带宽资源——忽略所有不符合的事件。你可以从 Filtering Events 文档中了解更多信息。
- 错误报告:机器人现在可以注册接收失败操作的错误信息,如插入信息的位置不存在的情况。你可以从 Error Reporting 文档中了解更多信息。
- Proxying-For:机器人现在可以向 Google Wave 表明他们所发出的动作是以其他用户的身份发出的,这是通过设置 proxying-For 域实现的。对于 Buggy 示例这样的机器人,它连接了 Google Code 问题跟踪器,这意味着通过它可以使用非 wave 系统中的用户的属性对 wave 进行更新。 你可以从 Proxying-For 文档中了解更多信息。
最新公布的一些机器人 API 的 新特性有:
- 捆绑式申明——在一次调用中添加新文本标注它。
- 内联 Blip 定位——得到一个 Blip 在其他 Blip 中的位置。
- 只读角色——通过 API 设置 wave 的只读访问。
机器人使用 Robot Wire 协议与 wave 交互,这是一种基于事件的交互方式。机器人将自己注册到其关注的 wave 上,此后 wave 的变更和修改通过包含在 JSON 消息包中的事件通知机器人。机器人在收到此类事件后可能会触发对 wave 的某个操作,可能通过 JSON-RPC 的方式,也可能使用机器人 API。
当前可用开发者使用 Robots Wire 协议创建机器人的库有 Java 客户库和 Python 客户库,但该协议也支持开发者基于它们所使用的语言创建新的客户库。
评论