Google Wave机器人开发介绍(5)

翻译自:Google Wave Robots: Overview (红色字为我的注

机器人的触发事件

下面是一些很重要的机器人触发事件:

  • wavelet_blip_created 当一个新的wavelet blip被添加时触发一个blip就是wave中的单个会话
  • wavelet_participants_changed 当有新的参与者加入或者有参与者被删除时触发
  • wavelet_title_changed 当wavelet的标题修改后触发
  • blip_contributors_changed 当一个blip的编辑者变化时触发因为一个blip可以被多个人编辑
  • blip_deleted 当有一个blip被删除后触发
  • blip_submitted 当一个blip被提交后触发blip被提交是指,用户按下 Done 或移动到其他的blip中去了。
  • document_changed 当blip中的文本变化后有一定间隔,因为wave是实时输入的

除了被事件触发外,一个机器人也可以定时和Wave进行交互,这个也是在配置文件里定义。这些cron事件允许机器人不仅做一些对wave请求的直接响应,还可以通过外部系统向wave传输更新的信息。(添加内容

注意,机器人不能直接和Wave交互,只能通过被事件触发或者定时事件。

当事件发生后,Wave使用HTTP POST,方法向机器人的应用发送请求(提及form的时候也是使用HTTP POST方法的)。所有包含wave交互信息的数据(json格式)都是通过下面这个URL和机器人进行交互的:

 http://applicationURL/_wave/robot/jsonrpc


向这个URL发送的请求可能会包含单个wavelet的多个事件,最新的事件可能会被打包在一起向机器人服务器发送。当机器人接收到一个事件后,就可以判断是否操作以及如何操作了。(一个恼人的bug是,Google Wave假死后,会将所有之前提交过的事件重新提交一遍