Google Wave API开发概览

简介:

 Google Wave已经公测一个月了,再全世界范围内都掀起了一股索要Google Wave的热潮。做为一个有思想的程序员,除了为Google Wave自身的新特性感动兴奋和赞叹以外, 我们还好奇Google Wave 提供的API能干些什么。

  说一句题外话:Google Wave计划引入类似IPhone的应用商店(AppStore)的模式,提高开发着的积极性,为开发者带来收入。嘿嘿,所以无论从兴趣上,还是从现实上,研究开发Google Wave的第三方应用都是有价值的! o(∩_∩)o

  如果您没有接触过Google Wave,流牛木马在这里推荐您先阅读这两个网页,再来看流牛木马的开发讲解。

    关于Google Wave是什么:    Google Wave,新Web时代的沟通平台(多图,视频

    关于Google Wave能干什么: Google Wave试用体验与Google的野心

  

    如果您已经了解完Google Wave的基础,OK,我们开始吧。

   

Google Wave API能干什么?

  • 开发机器人(Robots API)
          您刚才从上面的文章了解到,Wave是用来多人协作的。在多人协作的工作中,有一些工作是可以交给程序来做的。比如,或许您想在Wave中敲入 : ) 时,机器人可以自动帮你转换成图片image ;在比如, 或许当您想当你编辑完Wave进行保存时,机器人可以自动帮你翻译为制定的语言;或许您想当您在Wave中分享代码时,机器人能够帮你把代码高亮;或许您还想当您新建Wave,机器人可以自动帮你将信息发布到Twitter上(或让机器人通过邮件/短信方式通知其他参与者?)等等等等。
         要完成上面例子中的功能,您只需要把相应的Wave机器人像普通的参与者(participants)一样添加到Wave中,机器人就可以工作了。机器人可以和普通人类参与者一样,监听Wave的各种状态、阅读、修改Wave的信息。
         简单地说: 人类能在Wave上干什么,机器人就能在Wave上干同样的事——只要您为它编写好程序逻辑。
         很好玩吧? 嗯,Google Wave API当中的第一套API就是关于机器人的。使用这些API, 您可以发挥出您的编程特长,写出完成各种各样功能的机器人, 提交到官方,供全世界的Wave用户使用。
     
  • 开发嵌入Wave的网页部件(Gadgets API)
         
    当您看完上面两篇介绍Wave的文章时,您一定会感到非常惊叹。同时也许您也会想:好像功能还不太全,我能不能再给他补充一些的功能?比如画板、投票、统计、电话会议、地图标记等团队协作中常用的功能,Wave都没有自带。再如常见的“奥运倒计时”“天气预报”等无聊功能,再如一些“中国特色”的功能,比如偷菜、斗地主、抢车位……   
         是的,就是这样。Wave提供了一些列优秀的特性,通过API, 您可以充分发挥您的想象,让您开发的Gadgets使用这些特性,更加完美。
         相信大家对Gadgets已经很熟悉了,前段时间流行过;不过值得注意的是:使用了Wave API、引入了Wave的一些特性、并嵌入到Wave里的Gadgets, 可比传统网页上的Gadgets惊艳多了!
  • 将Wave嵌入其他网页(Embed API):
         这个API是最简单的,但很可能是将来使用的人最多的。它的功能很简单:将已有的一个Wave嵌入到其他网页:比如您的博客。不过现阶段这个API用处不大,因为Wave用户太少了,并且IE是不支持Google Wave的——就算您嵌入到您的博客文章里,能看到的人也是少数。

 

Google Wave 各种API的开发示例

  • Robots API
        
    在了解Robots API之前,您必须了解Google的云计算平台——Google App Engine (GAE),因为Google 只支持您将机器人部署在GAE上。GAE的开发和使用非常简单,流牛木马在这里就不介绍了,请读者自行阅读这里这里这里 ,如果还不明白,可以直接咨询我。 o(∩_∩)o
        GAE目前只支持两种语言: Java和Python。 我非常喜欢Python的优雅。下面就举一个Python的例子好了(其实Java我也不会*_*)。
        使用Python和Robots API开发Wave的机器人,需要以下步骤:
        1. 搭建Google AppEngine的开发环境
        2. checkout Robots API的代码,并import到项目中
        3. 添加事件的Handler (处理函数)
        4. 部署。
    实例代码:

    from waveapi import events
    from waveapi import model
    from waveapi import robot

    def OnParticipantsChanged(properties, context):
     
    """当参与者发生变化时,执行的函数"""
      added
    = properties['participantsAdded']
     
    for p in added:
       
    Notify(context)

    def OnRobotAdded(properties, context):
     
    """当机器人刚被添加时,执行的事件"""
      root_wavelet
    = context.GetRootWavelet()
      root_wavelet
    .CreateBlip().GetDocument().SetText("我是机器人,我开始工作了!")

    def Notify(context):
      root_wavelet
    = context.GetRootWavelet()
      root_wavelet
    .CreateBlip().GetDocument().SetText("有新朋友来了!")

    if __name__ == '__main__': """为这个机器的属性(profile)赋值。分别是:机器人名称、机器人头像、版本号、地址"""
      myRobot
    = robot.Robot('appName',
          image_url
    ='http://appName.appspot.com/icon.png',
          version
    ='1',
          profile_url
    ='http://appName.appspot.com/') """以下是添加Handler,对[参与者变化]和[机器人添加]这两个事件赋予相应的处理函数。"""
      myRobot.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED, OnParticipantsChanged)
      myRobot
    .RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
      myRobot
    .Run()

     


  • Gadgets API
         如果您有过开发传统Gadgets的经历, 您开发Gadgets会觉得非常信息: 在开发常规Gadgets时那些与后台交互的数据操作,全部由Wave的API来实现了,方便到家!
         大家知道,Gadgets主要就是Javascript。 那么好,开发Wave的Gadgets也只需要以下两个步骤:
         1. 首先是一个Gadgets
         2. 引入Wave Gadgets API(纯Javascript),在您的Gadgets中使用这些Javascript函数,与Wave进行交互。

    下面的示例代码展示的Gadgets中,提供了两个按钮:点击第一个按钮可以将当前count变量的值加1,并更新保存到Wave中;第二个按钮重置count的值为0. 注意:这里的count您可以理解为“服务器变量”,它由Wave的api来记录。
    <?xml version="1.0" encoding="UTF-8" ?>
         <Module>
         <ModulePrefs title="State Example" height="120">
    <Require feature="wave" />
    </ModulePrefs>
    <Content type="html">
    <![CDATA[
    <div id="content_div" style="height: 50px;"></div>
    <script type="text/javascript"> var div = document.getElementById('content_div'); //用户点击按钮时, 在本wave中获取到[count]变量的值,加1,记录。 function buttonClicked() { var value = parseInt(wave.getState().get('count', '0')); wave.getState().submitDelta({'count': value + 1}); } //当状态变更时,在wave中获取到[count]变量的值,并显示。如果[count]变量不存在,显示为0. function stateUpdated() { if(!wave.getState().get('count')) { div.innerHTML = "The count is 0." } else { div.innerHTML = "The count is " + wave.getState().get('count'); } } //初始化:判断这个Gadgets是不是包含在Wave的容器内,如果是则进行初始化。 function init() { if (wave && wave.isInWaveContainer()) { wave.setStateCallback(stateUpdated); } } gadgets.util.registerOnLoadHandler(init); //重置[count]变量的值为0 function resetCounter(){ wave.getState().submitDelta({'count': '0'}); } </script> <input type=button value="Click Me!" id="butCount" onClick="buttonClicked()"> <input type=button value="Reset" id="butReset" onClick="resetCounter()"> ]]> </Content> </Module>


  • Embed API
       
    呵呵,这个就非常没技术含量了,直接上示例代码:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
     
    <head>
       
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
       
    <title>Google Wave Embed API Example: Simple Wave</title>
       
    <script src="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script>
        <script type="text/
    javascript"> //寥寥数行,就把一个已有的Wave插入到了某网页的一个叫做"waveframe"的div中
       
    function initialize() {
         
    var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/');
          wavePanel
    .loadWave('wavesandbox.com!w+waveID');
          wavePanel
    .init(document.getElementById('waveframe'));
       
    }
       
    </script>
     
    </head>
     
    <body onload="initialize()">
       
    <div id="waveframe" style="width: 500px; height: 100%"></div>
     
    </body>
    </html>

   这里是DEMO页 :  http://file2.ws/hosted/2/53472/1.htm ,不过前文说了,现在Wave处于半公测阶段,您需要Google Wave的开发者帐号才能看到哦!

 

 

怎么样,很简单吧? 呵呵, 赶快一起投入到Google Wave的开发当中吧!
如果您有一些好的创意,尤其是关于Robots与Gadgets的,请告诉我,我非常有兴趣与大家一起探讨。o(∩_∩)o

  

 

   转载请著名版权:  流牛木马 @ 博客园
   本文地址:    http://www.cnblogs.com/azure/archive/2009/11/13/GoogleWaveAPI.html
相关文章
|
11天前
|
自然语言处理 搜索推荐 数据挖掘
淘宝商品描述 API 接口的开发、应用与收益
淘宝商品描述API接口的开发与应用涵盖注册成为开发者、了解API规范、选择开发工具及语言(如Python)和实现代码调用。该接口可用于优化电商平台商品展示、同步数据、竞品分析、智能客服及个性化推荐,从而提高销售转化率、降低运营成本并拓展业务机会。通过自动化处理和数据分析,企业能更精准地满足消费者需求,提升竞争力。
48 9
|
13天前
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
97 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
|
16天前
|
安全 搜索推荐 数据挖掘
虾皮店铺商品API接口的开发、运用与收益
虾皮(Shopee)作为东南亚领先的电商平台,通过开放API接口为商家和开发者提供了全面的数据支持。本文详细介绍虾皮店铺商品API的开发与运用,涵盖注册认证、API文档解读、请求参数设置、签名生成、HTTP请求发送及响应解析等步骤,并提供Python代码示例。API接口广泛应用于电商导购、价格比较、商品推荐、数据分析等场景,带来提升用户体验、增加流量、提高运营效率等收益。开发者需注意API密钥安全、请求频率控制及遵守使用规则,确保接口稳定可靠。虾皮API推动了电商行业的创新与发展。
88 31
|
5天前
|
API 开发者
通义灵码 API 开发文档自动生成场景DEMO
通义灵码API开发文档自动生成场景DEMO展示了通过自定义指令,大模型能快速根据类代码生成Markdown格式的API文档。文档详细描述API的入参、出参,并可生成测试代码等示例,帮助开发者快速创建美观的API文档。
|
15天前
|
监控 搜索推荐 API
京东JD商品详情原数据API接口的开发、运用与收益
京东商品详情API接口是京东开放平台的重要组成部分,通过程序化方式向第三方提供商品详细信息,涵盖名称、价格、库存等。它促进了京东生态系统的建设,提升了数据利用效率,并推动了企业和商家的数字化转型。开发者可通过注册账号、获取密钥、调用接口并解析返回结果来使用该API。应用场景包括电商平台的价格监控、竞品分析、个性化推荐系统开发、移动应用开发及数据整合与共享等。该接口不仅为企业和开发者带来商业价值提升、用户体验优化,还助力数据资产积累,未来应用前景广阔。
58 9
|
19天前
|
存储 搜索推荐 API
拼多多根据ID取商品详情原数据API接口的开发、运用与收益
拼多多作为中国电商市场的重要参与者,通过开放平台提供了丰富的API接口,其中根据ID取商品详情原数据的API接口尤为重要。该接口允许开发者通过编程方式获取商品的详细信息,为电商数据分析、竞品分析、价格监测、商品推荐等多个领域带来了丰富的应用场景和显著的收益。
46 10
|
11天前
|
存储 JSON API
小红书获取笔记详情API接口的开发、应用与收益。
小红书笔记详情API采用Python与Django框架开发,使用MySQL数据库存储数据。接口通过HTTP GET请求获取笔记详情,返回JSON格式数据,包含笔记内容、作者信息、图片链接等。该API应用于小红书APP内笔记展示和互动功能,并支持第三方平台的内容整合与数据分析,提升用户体验与活跃度,促进品牌合作推广,优化平台运营效率,为平台带来显著收益。
69 1
|
18天前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
44 5
|
22天前
|
JSON API 开发者
Lazada 商品评论列表 API 接口:开发、应用与收益
Lazada作为东南亚领先的电商平台,其商品评论数据蕴含丰富信息。通过开发和利用Lazada商品评论列表API接口,企业可深入挖掘这些数据,优化产品、营销和服务,提升客户体验和市场竞争力。该API基于HTTP协议,支持GET、POST等方法,开发者需注册获取API密钥,并选择合适的编程语言(如Python)进行开发。应用场景包括竞品分析、客户反馈处理及精准营销,帮助企业提升销售业绩、降低运营成本并增强品牌声誉。
34 2
|
24天前
|
监控 搜索推荐 API
京东按图搜索京东商品(拍立淘)API接口的开发、应用与收益
京东通过开放商品详情API接口,尤其是按图搜索(拍立淘)API,为开发者、企业和商家提供了创新空间和数据支持。该API基于图像识别技术,允许用户上传图片搜索相似商品,提升购物体验和平台竞争力。开发流程包括注册账号、获取密钥、准备图片、调用API并解析结果。应用场景涵盖电商平台优化、竞品分析、个性化推荐等,为企业带来显著收益,如增加销售额、提高利润空间和优化用户体验。未来,随着数字化转型的深入,该API的应用前景将更加广阔。
79 1

热门文章

最新文章