《社交应用编程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)勒布兰克著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302317579
  • 页数:471 页
图书介绍:本书介绍主流社交平台上使用的大量,揭示了如何综合利用OpenSocial, Apache Shindig, OAuth, OpenID, Caja等之类的工具来解决工作中碰到的实际问题。通过本书的阅读,读者可充分利用开源技术打造迷人而安全的社交应用和网站,并在保护用户隐私的同时,获得更高的投资回报。

第1章 社交应用容器的核心概念 1

1.1什么是社交应用容器 2

1.1.1用户个人资料页 3

1.1.2用户的亲朋好友 3

1.1.3用户的活动流 4

1.2实现专有标准与开放标准 5

1.2.1专有实现 5

1.2.2开源实现 6

1.2.3本书为什么介绍开放标准 7

1.3嵌入式应用程序:构建一个黑盒 7

1.4嵌入式应用程序的安全性 9

1.4.1跨站点脚本攻击 9

1.4.2同源策略与较早的浏览器 10

1.4.3偷渡式下载 10

1.4.4保护应用程序 10

1.5外部应用程序:集成容器之外的社交数据 11

1.6应用程序视图 12

1.6.1主视图(小视图) 12

1.6.2个人资料页视图(小视图) 13

1.6.3画布视图(大视图) 14

1.6.4默认视图(任意视图) 15

1.7应用程序许可概念 16

1.8客户端与服务器端应用程序 17

1.8.1为标记层使用模板系统 17

1.8.2使用混合式服务器与客户端环境 18

1.8.3延缓非关键内容的载入 18

1.9 阻碍应用程序成功的因素 19

1.9.1可移植的Flash应用 19

1.9.2不成熟视图 20

1.9.3 Copycat视图应用 21

1.9.4共享过度的应用 22

1.9.5不赢利的应用 22

1.9.6信息源应用 23

1.10应用程序模型案例研究 24

1.10.1案例研究:基于交友关系的社交游戏 24

1.10.2案例研究:产品销售应用 28

1.10.3案例研究:基于位置的应用程序 30

1.11快速提示 34

1.11.1了解受众 34

1.11.2尽早构建社交整合点 34

1.11.3开发时要记得赢利这件事 34

1.11.4生成多种互为补充的视图 35

第2章 将用户关系与社交图谱相对应 37

2.1网上社交图谱 37

2.2在网络中应用现实生活中的社交图谱 39

2.2.1自动划分用户群集 39

2.2.2隐私与安全性 40

2.2.3建立信任 40

2.3共享隐私用户数据:选择参与和选择退出 41

2.3.1选择参与共享模型 41

2.3.2选择退出共享模型 42

2.4理解关系模型 42

2.4.1关注者模型 42

2.4.2联系人模型 43

2.4.3群模型 45

2.5关系与实体 47

2.6构建社交相关性:探索Facebook社交图谱 48

2.6.1以真实身份为基础 49

2.6.2理解传播渠道 50

2.6.3构建用户群 50

2.6.4避免生成不相关的社交图谱 50

2.7通过OpenLink协议定义实体的好恶 51

2.7.1集成OpenLike小组件 52

2.7.2如何显示共享的“赞”的内容 52

2.8小结 53

第3章 构建社交应用平台的基础 55

3.1学习内容 55

3.2 Apache Shindig 55

3.3安装Shindig 56

3.3.1在Mac OS X (Leopard)上安装Shindig 57

3.3.2在Windows上安装Shindig 60

3.3.3 测1试Shindig安装实例 63

3.4 Partuza 64

3.4.1要求 64

3.4.2在Mac OS X (Leopard)上安装Partuza 65

3.4.3在Windows上安装Partuza 67

3.4.4测试安装的Partuza 72

3.5 OpenSocial小工具XML规范 72

3.6用ModulePrefs配置应用程序 73

3.6.1 Require/Optional 74

3.6.2 Preload 74

3.6.3 Icon 75

3.6.4 Locale 75

3.6.5 Link 76

3.7定义用户首选项 78

Enum数据类型 78

3.8应用程序内容 79

3.8.1定义内容视图 79

3.8.2内置内容与代理内容 86

3.9融会贯通 87

第4章 以OpenSocial JavaScript引用定义功能 91

4.1学习内容 91

4.2包含OpenSocial功能JavaScript库 92

4.3动态设置小工具视图的高度 92

4.4在小工具中插入Flash电影 94

4.5向用户显示消息 95

4.5.1生成消息 96

4.5.2设定消息窗口的位置 98

4.5.3设定消息和窗口的类型 100

4.6以用户首选项保存状态 103

4.7以编程方式设置小工具标题 104

4.8集成选项卡式的小工具用户界面 105

4.8.1基本小工具 106

4.8.2根据标记创建选项卡 107

4.8.3利用JavaScript创建选项卡 108

4.8.4获取与设置TabSet的信息 109

4.9向Shindig添加自己的JavaScript库 112

4.10融会贯通 115

4.10.1生成小工具XML文件 116

4.10.2使用Shindig显示小工具 119

第5章 迁移应用程序、个人资料和朋友关系 121

5.1学习内容 121

5.2评估OpenSocial容器的支持 122

5.3 OpenSocial规范的核心组件 123

5.3.1核心API服务器规范 124

5.3.2核心小工具容器规范 124

5.3.3社交API服务器规范 125

5.3.4社交小工具容器规范 125

5.3.5 OpenSocial容器规范 126

5.4跨容器开发与迁移 126

5.4.1使用混合式客户端-服务器环境 127

5.4.2将社交功能与主体应用程序代码拆开 127

5.4.3避免使用容器特有的标签 127

5.5从Facebook向OpenSocial迁移应用程序 128

5.5.1为非社交应用构造采用iframe 128

5.5.2抽象Facebook功能逻辑 128

5.5.3将可视标记与编程逻辑区分开来 129

5.5.4使用REST端点,而不是FQL 129

5.5.5在服务器端实现大部分代码 129

5.6用个人资料数据实现应用程序的个性化 129

5.6.1 Person对象 130

5.6.2 Person数据抽取方法 130

5.6.3 Person对象中的可用字段 135

5.6.4扩展Person对象 156

5.6.5收集用户个人资料 162

5.7利用朋友关系增加受众数 164

请求收集用户朋友关系 165

5.8融会贯通 165

5.8.1小工具规范 166

5.8.2 Content标记 166

5.8.3 JavaScript 168

5.8.4运行小工具 169

第6章 OpenSocial活动、共享和数据请求 171

6.1学习内容 171

6.2用OpenSocial活动来推广应用程序 172

6.2.1利用活动更新实现应用程序体验的个性化 173

6.2.2通过活动更新增加应用程序的用户数 174

6.3直接共享与被动共享 177

6.3.1直接共享 177

6.3.2被动共享 179

6.3.3平衡共享 180

6.4发出AJAX和外部数据请求 181

6.4.1发出标准数据请求 182

6.4.2用数据请求推送内容 183

6.4.3使用签名请求保护数据连接的安全 184

6.5融会贯通 192

第7章 高级OpenSocial和未来OpenSocial 197

7.1学习内容 197

7.2数据管道 198

7.2.1数据请求类型 200

7.2.2使数据可供代理数据请求使用 205

7.2.3在客户端处理管道化数据 206

7.2.4处理由数据管道生成的错误 209

7.2.5动态参数 209

7.3 OpenSocial模板化 211

7.3.1获得标记与数据的不同方法 213

7.3.2呈现模板 215

7.3.3表达式 218

7.3.4特殊变量 219

7.3.5条件 221

7.3.6循环内容 224

7.3.7将数据管道与模板相结合 228

7.3.8其他特殊标签 230

7.3.9模板库 232

7.3.10 JavaScript API 236

7.4更多标记:OpenSocial标记语言 241

7.4.1显示人名:os:Name 241

7.4.2创建人员选择器:os:PeopleSelector 242

7.4.3显示人员徽章:os:Badge 242

7.4.4载入外部HTML:os:Get 242

7.5用消息包支持本地化 243

7.6 OpenSocial REST API库 245

可用库 246

7.7未来OpenSocial:探索领域 246

7.7.1企业容器 247

7.7.2移动转换 247

7.7.3分布式Web框架 247

7.8 OpenSocial和分布式Web框架 248

7.8.1活动流 248

7.8.2 PubSubHubbub 248

7.8.3 Salmon协议 249

7.8.4开放图谱协议 250

7.9融会贯通 251

第8章 社交应用安全概念 257

8.1学习内容 257

8.2通过iframe托管第三方代码 258

8.3安全方法:Caja项目 258

8.4为什么使用Caja 258

8.5攻击向量 : Caja如何提供保护 259

8.5.1未经用户同意对其进行重定向 259

8.5.2挖掘用户的浏览历史 260

8.5.3用document.create Element执行任意代码 261

8.5.4记录用户的击键操作 261

8.6安装Caja 263

8.7从命令行清理脚本 265

8.7.1清理HTML和JavaScript 265

8.7.2修改清理器呈现格式 270

8.8从Web应用程序运行Caja 270

8.9用OpenSocial小工具运行Caja 272

8.9.1向小工具添加Caja 273

8.9.2实例 273

8.10使用JSLint尽早发现JavaScript问题 275

8.11使用Caja Playground 276

8.12 Caja环境中的使用技巧 276

8.12.1实现代码模块化:不要清理整个项目 277

8.12.2使用预清理的JavaScript库 277

8.12.3不要依靠Firebug或经过清理的JavaScript源代码 278

8.12.4不要在标记中嵌入事件 279

8.12.5集中JavaScript:仅请求数据和标记 280

8.13 Caja的轻量替代方法:ADsafe 281

8.14 ADsafe与Caja的对比:应当使用哪种方法 282

8.15如何实现ADsafe 283

8.15.1设置ADsafe对象 283

8.15.2 DOM对象 284

8.15.3用查询方法选择DOM 286

8.15.4使用群束对象 290

8.15.5附加事件 296

8.15.6定义库 298

8.16融会贯通 299

8.16.1数据源 300

8.16.2标头:脚本和样式 300

8.16.3主体:标记层 301

8.16.4主体:JavaScript层 302

8.16.5最终结果 303

8.17小结 304

第9章 用OAuth保护社交图谱访问的安全 305

9.1超越基本验证 305

9.1.1基本验证实现:工作方式 306

9.1.2反对使用基本验证的理由 307

9.2 OAuth 1.0a标准 308

9.2.1 OA uth 1.0a工作流程 309

9.2.2最终用户体验 316

9.2.3两方OAuth与三方OAuth的对比 318

9.2.4三方OAuth实现示例 322

9.2.5调试签名问题的工具与技巧 337

9.3 OAuth 2 340

9.31OAuth 2 工作流程 340

9.3.2实现示例:Facebook 348

9.3.3实现示例:在Facebook OAuth进程中请求更多的用户信息 358

9.3.4 实现示例:最终用户体验 360

9.3.5调试请求问题的技巧 361

9.4小结 365

第10章 社交的未来:通过分布式Web框架定义社交实体 367

10.1学习内容 367

10.2开放图谱协议:将Web页定义为社交实体 368

10.2.1元数据的兴起与衰落 368

10.2.2开放图谱协议如何工作 369

10.2.3实现开放图谱协议 370

10.2.4实例:Facebook开放图谱 375

10.2.5实例:从Web源收集开放图谱数据 378

10.2.6开放图谱协议的缺点 384

10.3活动流:社交活动的标准化 385

10.3.1为什么需要定义一个活动标准 385

10.3.2实施“活动流” 386

10.3.3对象类型 390

10.3.4动词 391

10.4 WebFinger:通过电子信箱地址扩展社交图谱 393

10.4.1从finger到WebFinger:WebFinger的起源 393

10.4.2实现WebFinger 394

10.4.3 WebFinger协议的缺点 396

10.5 OExchange:构建社交共享图谱 397

10.5.1 OExchange如何工作 397

10.5.2 OExchange的用途 398

10.5.3实现 OExchange 399

10.6 PubSubHubbub:内容整合 404

10.6.1 PubSubHubbub如何工作 404

10.6.2好处:从发布者到订阅者 407

10.6.3托管Hub和实现服务 408

10.6.4工作流程库 409

10.6.5用PHP构建发布者 410

10.6.6用Python构建发布者 412

10.6.7用PHP构建订阅者 414

10.6.8用Python构建订阅者 417

10.7 Salmon协议:会话实体的统一 419

10.7.1 Salmon协议工作流程 419

10.7.2建立在PubSubHubbub的基础之上 421

10.7.3防止滥用与垃圾信息 422

10.7.4实现概述 422

10.8小结 424

第11章 用OpenID扩展社交图谱 425

11.1 OpenID标准 425

11.1.1分散是关键 425

11.1.2相对于传统登录的改进 426

11.1.3访问现有成员身份数据库和社交图谱 426

11.2我是否已经拥有OpenID,如何注册一个 426

11.3 OpenID验证流程 427

11.4 OpenID提供商 432

11.5绕过OpenID中的域发现错误 433

11.6 OpenID扩展 434

11.6.1“简单注册”扩展 435

11.6.2“属性交换”扩展 436

11.6.3提供商验证策略扩展 441

11.6.4当前正在开发的扩展 445

11.7 OpenID实例 446

11.7.1使用PHP实现OpenID 447

11.7.2使用Python实现OpenID 458

11.8常见错误与调试技巧 469

11.8.1回调URL失配 469

11.8.2无法发现的OpenID标识符 470

11.9小结 471