Google API大全

第Ⅰ部分 准备篇——Google API概览

1 Google API简介

2 Google API的商业价值

 

第Ⅱ部分 出发篇——Google API站点基础类

3 数据交换利器——Google Data APIs

3.1 Google Data APIs简介

3.2 Google Data APIs基础

3.3 数据API基础实例

3.4 Google数据API文档格式和请求语法

3.5 小结

4 Google注册用户身份认证——Google Account Authentication API

4.1 Google账号授权服务概述

4.2 Google账户授权服务分类

4.3 Google账号服务原理及其使用实例解析

4.4 小结

5 检测多国语言——Google AJAX Language API

5.1 Google AJAX Language API概述

5.2 Google AJAX Language API细节

5.3 Google AJAX Language API上的“HelloWorld”程序

5.4 Google AJAX Language API使用方式

5.5 Google AJAX Language API开发示例

5.6 其他常见问题及其解决方法

5.7 小结

 

第Ⅲ部分 扬帆篇——网站Google API应用工具类

6 运行自己的Web应用——Google App Engine

6.1 GAE简介

6.2 运行环境

6.3 Datastore

6.4 示例

6.5 小结

7 图表绘制工具——Google Chart API

7.1 Google Chart API概述

7.2 Google Chart API细节

7.3 Google Chart API开发示例

7.4 实际项目示例

7.5 小结

8 日历工具,生活中不可缺的另一半——Google Calendar APIs and Tools

8.1 Google Calendar数据API

8.2 使用其他小助手

8.3 小结

9 电子表格——Google Spreadsheets API

9.1 Google Spreadsheets API概述

9.2 通过Google Spreadsheets API完成对电子表格的访问

9.3 Google Spreadsheets API开发示例

9.4 小结

10 iGoogle主题设计——iGoogle Themes API

10.1 iGoogle Themes API概述

10.2 创建主题的步骤

10.3 小结

11 小工具开发——Google Gadgets API

11.1 Google Gadgets API概述

11.2 创建第1个小工具

11.3 小结

12 数据可视化——Google Visualization API

12.1 Google Visualization API概述

12.2 Google Visualization API使用方式

12.3 Google Visualization API开发示例

12.4 小结

13 访问和使用Feed数据——Google AJAX Feed API

13.1 Google AJAX Feed API概述

13.2 Google AJAX Feed API的使用方法

13.3 小结

14 社会交友网络——OpenSocial

14.1 OpenSocial概述

14.2 OpenSocial开发简介

14.3 实现OpenSocial容器

14.4 小结

15 社会交友网络图谱——Google Social Graph API

15.1 Google Social Graph API概述

15.2 Google Social Graph API的使用方法

15.3 小结

16 Gmail联系人信息共享——Google Contacts Data API

16.1 Google Contacts Data API概述

16.2 Google Contacts Data API使用方法

16.3 小结

17 网络相册应用——Picasa Web Albums Data API 223

17.1 Picasa Web Albums Data API概述 224

17.2 Picasa Web Albums Data API使用方法 224

17.3 小结 236

18 集成YouTube视频——YouTube Data API 237

18.1 YouTube APIMashup概述 238

18.2 YouTube API示例 239

18.3 小结 244

19 整合Blogger博客服务——Blogger Data API 245

19.1 Blogger Data API概述 246

19.2 Blogger Data API开发示例.. 246

19.3 小结 251

20 整合FeedBurner阅读器——FeedBurner API 253

20.1 FeedBurner API概述 254

20.2 FeedBurner开发示例 254

20.3 小结 268

 

第Ⅳ部分 航海篇——Google API应用开发与电子商务类 269

21 移动平台——Android应用开发 271

21.1 Android概述 272

21.2 Android应用程序架构 277

21.3 小结 292

22 即时消息传递协议——Google Talk XMPP 293

22.1 Google Talk API概述 294

22.2 Google Talk API使用方法 295

22.3 Google Talk API开发示例 297

22.4 小结 307

23 数据格式定义利器——Google Protocol Buffer API 309

23.1 Google Protocol Buffer API概述 310

23.2 Google Protocol Buffer API的使用方法 313

23.3 Google Protocol Buffer API开发示例 324

23.4 小结 333

24 为网站丰富AJAX内容——Google AJAX Libraries API 335

24.1 Google AJAX Libraries API概述 336

24.2 Google AJAX Libraries API使用方式 336

24.3 Google AJAX Libraries API开发示例 339

24.4 小结 340

25 用户广告管理——Google Adwords API 341

25.1 Google Adwords概述 342

25.2 Google Adwords API 343

25.3 Google Adwords API示例 344

26 网络广告整合——Google AdSense API 351

26.1 Google AdSense API概述 352

26.2 创建一个AdSense管理系统 354

26.3 小结 359

27 在线付款机制——Google Checkout API 361

27.1 Google Checkout概述 362

27.2 增加Google Checkout支持 365

27.3 使用Google Checkout商户中心管理订单 368

27.4 小结 368

 

第Ⅴ部分 开拓篇——Google API搜索、地图服务及桌面应用类 369

28 图书搜索——Google Book Search Book Viewability API 371

28.1 Google Book Search Book Viewability API概述 372

28.2 使用方法 372

28.3 开发示例 375

28.4 常见问题 377

28.5 小结 378

29 嵌入Google搜索——Google AJAX Search API 379

29.1 Google AJAX Search API概述 380

29.2 搜索内容 384

29.3 定制界面 390

29.4 让用户不仅仅看搜索结果 393

29.5 RESTful风格界面 394

29.6 不要逾越红线 399

29.7 其他资源 399

29.8 小结 399

30 地图服务——Google Maps API 401

30.1 Google Maps API概述 402

30.2 Google Maps API使用方式 406

30.3 通过开源工具拓展Google Maps 424

30.4 小结 437

31 地图信息服务工具集——Google Mapplets 439

31.1 Google Mapplets概述 440

31.2 Google Mapplets使用方式 441

31.3 Google MappletsTwitter的集成示例 446

31.4 小结 449

32 地理标记语言——KML 451

32.1 KML概述 452

32.2 KML语法格式 455

32.3 KMLGoogle Earth上展示实例 461

32.4 小结 463

33 静态地图服务——Google Static Maps API 465

33.1 Google Static Maps API概述 466

33.2 Google Static Maps API语法格式 467

33.3 Google Static Maps API示例 472

33.4 小结 482

34 编写桌面小工具——Google Desktop Gadget API 483

34.1 Google桌面小工具API概述 484

34.2 Google桌面小工具示例 487

34.3 Google桌面小工具文件格式详解 492

34.5 小结 502

35 让应用支持桌面搜索——Google Desktop Search API 503

35.1 Google Desktop Search API概述 504

35.2 查询APIJavaScript示例 506

35.3 查询APIHTTP/XML示例 512

35.4 小结 515

36 与在线文档互操作——Google Document List API 517

36.1 Google Document List API概述 518

36.2 Google Document List API使用方法 519

36.3 Google Document List API开发示例 520

36.4 小结 530

37 浏览器扩展——Google Gears 531

37.1 Google Gears概述 532

37.2 Google Gears使用方法 532

37.3 Google Gears API开发示例 537

37.4 小结 540

38 在线您的笔记——Google Notebook Data API 541

38.1 Google Notebook Data API概述 542

38.2 Google Notebook Data API使用方法 542

38.3 Google Notebook Data API开发示例 544

39 其他API 547

39.1 工具栏定制——Google Toolbar API 548

39.2 构造精美3D视图——Google SketchUp Ruby API 550

39.3 搜索我们需要的代码段——Google Code Search Data API 553

附录A 本书源代码使用说明 557

附录B Google在线资源 561

索引... 563

 

 

序言

虽然基于网络平台的云计算概念在几年前刚被提出时有人持否定的态度,但软件开发业界经过这几年的实践和发展,人们对基于互联网的应用和服务的云计算开发的技术可行性,以及这种模式所带来的巨大商机已经不再抱怀疑态度。在世界范围内,云计算的理念正在不断地被越来越多的开发者们所接受和付诸实践。谷歌公司作为世界领先的提供云计算平台的公司,不断推出有利于促进网络发展的各种新型开发者产品和技术,也越来越得到全世界开发者们的重视和喜爱。更多的中国的开发者们也非常想进一步了解谷歌的各种开发技术和API的细节。这本由博文视点组稿、多名谷歌中国工程师一起写作、电子工业出版社出版的《Google API大全——编程·开发·实例》,为广大开发者们提供了及时的参考资源和产品信息,对云计算实践在中国的进一步推广和发展,无疑也是一个及时的积极推动。

云计算平台在这几年得到了飞速的发展。从去年9月谷歌功能强大的以开源代码为基础的支持Canvas及地理定位等功能的Chrome浏览器的发行、11月苹果的iPhoneCanvas的支持,到今年春季火狐、SafariOpera等浏览器对Canvas及地理定位等功能的支持等,这些让以浏览器为应用平台的网络应用开发达到了一个空前未有的高速发展,远远超过了各种仅基于桌面计算机本地运行的终端软件发展的速度。以往业界有人怀疑基于网络的开发是否真正有前途,因为一些关键的技术平台和开发模式还没有解决或不够清晰,但是这一年来的网络技术的飞速发展将这些怀疑彻底地击破了。

在多媒体图像和动画显示需求方面,Canvas和在线视频的技术已经满足了这方面的开发需要。Canvas可以让开发者们根据具体的像素要求通过API来解决,并提供完全的控制。有了这样的功能,开发者可以不再须要强迫用户专门下载和依赖于FlashSilvelightVML等产品才能享受动画和图像的开发和创作。

在地理和定位信息的需求方面,Geolocation功能和服务,以及功能变得日益强大的地图等API功能,为世界范围内无数的开发者带来巨大的创新机会。

在数据存储的需求方面,App Cache和基于网络的数据库的发展,也解决了这个应用开发中的关键问题。

运算性能的提高方面,诸如Chrome等浏览器不断加快响应速度,以浏览器作为应用平台的速度瓶颈也不再存在。据统计,最新的Chrome等浏览器对JavaScript程序脚本的解析速度与10年前相比,已增长了近百倍!与此相关的另一个重要发展是Web Workers的标准和技术,它让开发者们可以使用与使用界面完全分离的、在后端背景中独立运行的脚本,减轻前端图像使用界面的运行负荷,进一步加快使用界面的速度。

正是这些技术的飞速发展,世界范围内越来越多的开发者将原先开发计算机终端的本领和经验,转移到了以网络为平台的应用开发,谷歌API的使用量也达到了空前未有的数量。同时,提高用户的使用体验的其他更令人兴奋的创新和网络功能也在不断地发展:HTML5将使得在网页中加入视频的各种功能就像加入一个[img]那样方便;谷歌最新的三维图象平台O3D将给无数的多媒体、动画、游戏等应用领域中的开发者们开启一个基于浏览器和网络平台的前所未有的创新大门;在不久的将来,谷歌的网络工具GWT2.0还将为开发者们提供在浏览器里进行实地开发调试(Debugging)的功能,把前所未有的开发工具的功能和便利注入云计算开发平台中去。所有这些,都表明了谷歌对云计算一如既往的支持和继续引领云计算技术发展的决心。这些开发技术和平台的不断强化和成长,将给千千万万的开发者们提供创新思维任意驰骋的新天地!

千里之行,始于足下。在到达那个网络开发创新高效率和无限商机的美好彼岸之前,今天谷歌的各种开发者产品和技术平台所提供的功能是我们划向这个理想彼岸的第1桨。从谷歌的地图、小工具、移动和手机应用开发平台、桌面应用,到进行社交网络开发的公开标准Open Social,等等,所有这些技术让我们可以扎实地开始网络应用开发的创新,所有这些支持公开网络标准的努力都为网络技术的健康发展提供了一个公平竞争的环境。这也是本书所带给读者的价值。除此之外,本书所介绍的一些开发案例,也为您带来了窥见其他领先开发商在利用谷歌的这些开发技术上如何进行创新的思路。

在网络技术飞速发展的今天,及早得到最新的信息将帮助你尽早站在赢得竞争的起跑线上。本书的作者们为了把这些开发技术尽早与读者们分享,在百忙之中为这个项目投入了大量的时间和精力,特别是很多谷歌的工程师们,他们花费了大量业余时间来完成这个工作,更显得难能可贵。

谨祝本书与您分享的开发技术能够帮助你在网络应用开发的大海中畅游!

栾跃

Google(谷歌) 开发技术推广部 中国市场首席经理

20095月于北京

 

推荐序2

Google10年前还仅仅是一个小小的搜索引擎,今天它已经是全球最大的收集、处理各种形式的信息并提供免费信息服务的公司。Google(谷歌)的首席执行官埃里克·施密特博士在每次会见来自中国的客人时总是说:“Google是一个奇怪的地方”。施密特讲的Google奇怪之处在于它独特的运作和管理方式。凡是参观过Google总部的中国客人,都会惊讶地发现Google虽然是一个近2万人的大型跨国公司,从表面上看管理却近乎于无政府状态;而且几乎每一个产品、每一个项目都是由分布在全世界不同地点的工程师合作完成的。这样一种非传统的运营方式,却造就了当今全世界科技工业企业中最富创新、利润最高并且发展最快的公司。

其实,Google内部是外松内紧,将Google不同经历、不同文化背景和不同地点的员工紧密联系起来,开发大众喜欢的产品的纽带是Google的技术和工程标准。Google的利润在其搜索引擎里,它是由分布在全世界多个办公室上千工程师共同努力开发的。这些工程师的工作方式,完全不遵循传统软件工程教程中的金科玉律。传统的软件开发,总体是自上向下的,从整体设计到细节设计,再分成一个个小模块,分配给开发小组,直到个人; Google是上千个工程师自下向上地同时编写和修改一个软件,每个人根据自己的特长主动解决其中一个或数个技术问题,从设计到产品化,从头负责到底。这样,Google比传统的软件公司更能调动员工的积极性,时间一长,便能做出超越同行的产品,创造巨额的利润。当然,为了保证众多工程师各自写的程序能够有效地整合成商业软件,大家须要遵守很多技术规范,其中Google编程的API就是众多技术规范之一。

Google成功的另一个重要原因在于它得到了工业界和社会的广泛支持。在商业上Google尽可能联合同行来分利,而不是直接与同行争利。在工程和技术上,Google希望通过提供一些开发的平台,让社会上越来越多的人参与开发应用软件和服务。Google的很多产品,例如Google地球得以普及的原因之一是有大量的政府部门、软件开发商和计算机爱好者基于Google地球开发出各种应用产品。为了方便软件工程师和计算机爱好者使用Google的技术、工具和数据从事开发工作,Google不断公布一些应用程序接口(API)。由于Google在计算机领域,尤其是互联网应用方面技术领先、影响力大,利用Google API进行应用软件和服务的开发在全世界越来越普及,很多年轻人甚至在此基础上成功创业,提供深受欢迎的互联网服务。遗憾的是这些API的原始技术文档都是以英文书写的,不利于广大中国开发者使用。

2008年我通过电子工业出版社的周筠和陈琼老师介绍认识了本书的作者高昂先生。高先生和我谈起他正在写一本有关Google API的编程指南,我觉得这是一件非常有意义的事情,它不仅将Google的技术介绍到了中国,并且为中国读者提供了一个中文版的GoogleAPI使用指南,为中国的广大软件程序员提供了很多解决工程问题的参考方案。

本书最突出的一点在于它的原创性。长期以来市场上各种软件开发指南的图书,翻译英文的著作较多,由软件专家根据自己经验进行原创的较少。翻译的科技图书不仅文字绕口,而且很多应用实例和中国人生活相去甚远。这类翻译的图书另一大不足之处是,翻译者通常没有去实现书中的编程实例,只是将原文直接附在书中。这样,翻译者不仅对这些实例的理解不深,很难给予编程人员必要的指导,而且由于原文和译文难以避免的一些编辑错误,这些书中的实例时常无法运行。这些编程指南虽然对专业人进行开发有所帮助,但是很难作为软件开发的辅导书。而本书的作者(们)则不同,他们完全学习和掌握了Google技术,并且亲身实践、消化吸收后,用心地将他(们)的点点滴滴体会,用优美的文笔整理成书。书中的实例,都是作者(们)在工作中使用过的,或者是作者测试过的,因此很有参考价值。在和高昂先生的接触中,我发现他年轻有为,思维敏锐,能快速地把握计算机发展技术的动态;同时,他对Google API编程有着全面而深刻的理解。书中所精选的实例也非常适合中国广大软件工作人员和计算机爱好者在工作中使用。因此,这是一本难得的计算机参考书。

博文视点出版公司的编辑们非常擅长编辑和出版科技图书。一般科技图书给人的感觉是内容高深而枯燥、版面呆板单调,但是博文视点公司出版的很多科技图书,在内容组织、编排,以及版面设计上新颖、生动、优美并且引人入胜。这是该书的又一个特点。

我作为一名长期从事计算机科学研究的学者和Google的资深员工,对于高昂先生这项了不起的工作表示衷心的感谢,同时也非常感谢电子工业出版社博文视点出版公司的周筠老师、陈琼和其他同仁编辑和出版该书,他们把最新的知识介绍给了读者。

吴军

Google(谷歌)资深研究员

20095月于美国硅谷

 

序言

10年前,使用Email邮箱收发邮件,只是很少一部分技术人员才能享受到的便利;5年前,出行时如果没有随身携带地图,只好在路人的指点下摸索找寻。而今天,无处不在的互联网和丰富多彩的互联网应用,已然嵌入了我们的生活。GMail带给我们免费、好用且容量不断增加的邮件服务,Google Maps成了我们出行前必不可少的参阅工具,甚至通过移动终端将地图随时带在身边。所有这些,都悄无声息成为我们生活的一部分。

互联网技术每天都在更新和发展,促成这一切发生的,正是背后极具创造性的程序员,以及那些通过产品为用户带来价值的新技术公司。在这些公司中,Google毫无疑问是在帮助用户改变互联网使用方式上做得最为出色的公司。

Google以其独具特色的互联网应用,一直引领着互联网产品开发的方向。同时,Google为其绝大部分产品提供了面向开发者的API调用接口。这些设计良好的API,帮助开发者通过Mashup调用将Google产品所提供的内容集成在第三方应用中。

Google多达几十种的开放API无法一一列举,但我们在日常使用互联网时一定在不经意间享受过它所带来的便利。提供地图服务的Maps API,实现互联网社区化联系的OpenSocial API,开发定制个性化首页的iGoogle Themes API,简化广告营销管理活动的AdWords API,提供网络应用程序平台的App Engine,等等。这些API的出现,不仅仅为开发者带来更具灵性的开发创意,为用户带来更为丰富多彩的互联网产品,更重要的是,它们说明了Google的产品不是封闭的,而是属于整个互联网开放平台的,任何人都可以在Google的产品之上进行拓展,并享用Google产品为互联网带来的便利。

本书的写作的目的,也正在于此,即对Google开放API进行梳理和介绍,辅以行之有效的实例,让更多的开发者了解Google API、深入Google API,灵活使用Google API来开发实用且融入灵感与创意的互联网应用。

技术的更新进步往往在不经意间就跨越千里,Google开放API也是如此,一直以来与产品的升级更新保持同步,但API在设计上却秉承良好的向下兼容性,即便是API版本升级,先前的应用代码不做或仅做很少改动便可以迁移到新的API环境下运行。本书所涵盖的内容也同样如此,作者们试图让捧在您手上的这本书,涵盖Google API开发中最为常用的部分,而不拘泥于API的细枝末节,通过实例帮助读者了解特定API的使用模式,触类旁通地使用API所提供的各种功能。

当然,如果您是中小互联网站的站长或维护者,即便不从事具体的开发工作,这本书同样也具有实用和参考价值。书中的内容帮助您了解哪些Google产品的API对您适用,可以为您的网站添加哪些新的功能和亮点,从而吸引更多的用户访问和使用。

本书的作者,大部分是来自Google公司开发一线的工程师,还有始终关注Google API,并活跃在开发者社区的程序员和架构师。除了在Google API开发方面有着丰富的经验,这些作者无一例外也都是Google产品的狂热爱好者,每天都在与Google产品进行着亲密的接触,对他们来说,这些产品如同嵌入在生活中一般。

无疑,本书的写作也是在Google各种互联网应用支持下完成的:在Google Groups提供的邮件列表上讨论写作细节,在GMail邮件中沟通技术难点,使用Google Docs撰写书稿并统计写作进度,在Google Reader中获取最新的技术进展并使用Google Code项目平台为读者提供书籍各个章节的源代码。Google的互联网应用帮助作者们构建了一个良好的协作平台,作者们借助于这个平台,将Google API的开发经验带给每一位读者。

本书开始策划到终稿出版,还要感谢博文视点的编辑团队。感谢自始至终和作者们一起为本书努力的策划编辑陈琼,她细致认真的工作让书稿一点点完善充实;感谢为这本书设计封面、进行营销推广,以及进行校对排版的各位博文朋友。正是博文视点编辑团队认真细致的工作,才有了这本书的诞生。

让我们翻开本书,踏上令人愉悦的Google API开发之旅。如果在书籍阅读中遇到任何问题,请不要犹豫,直接用邮件与我们联系,各个章节代码及作者的介绍和联系方式都可以在下面的Google Code项目地址获得:http://code.google.com/p/google-api-broadview/

Google改变了我们使用互联网的方式,让我们拿起手中的键盘,用好书中几十种功能各异的Google API,重新定义我们眼中丰富多彩的互联网应用。...

高昂

中科院地理所资源与环境信息系统

国家重点实验室在读博士

20095月于北京

你可能感兴趣的:(Google API大全)