内容简介
第1章 社交应用容器的核心概念
1.1什么是社交应用容器
1.1.1用户个人资料页
1.1.2用户的亲朋好友
1.1.3用户的活动流
1.2实现专有标准与开放标准
1.2.1专有实现
1.2.2开源实现
1.2.3本书为什么介绍开放标准
1.3嵌入式应用程序:构建一个黑盒
1.4嵌入式应用程序的安全性
1.4.1跨站点脚本攻击
1.4.2同源策略与较早的浏览器
1.4.3偷渡式下载
1.4.4保护应用程序
1.5外部应用程序:集成容器之外的社交数据
1.6应用程序视图
1.6.1主视图(小视图)
1.6.2个人资料页视图(小视图)
1.6.3画布视图(大视图)
1.6.4默认视图(任意视图)
1.7应用程序许可概念
1.8客户端与服务器端应用程序
1.8.1为标记层使用模板系统
1.8.2使用混合式服务器与客户端环境
1.8.3延缓非关键内容的载入
1.9 阻碍应用程序成功的因素
1.9.1可移植的Flash应用
1.9.2不成熟视图
1.9.3 Copycat视图应用
1.9.4共享过度的应用
1.9.5不赢利的应用
1.9.6信息源应用
1.10应用程序模型案例研究
1.10.1案例研究:基于交友关系的社交游戏
1.10.2案例研究:产品销售应用
1.10.3案例研究:基于位置的应用程序
1.11快速提示
1.11.1了解受众
1.11.2尽早构建社交整合点
1.11.3开发时要记得赢利这件事
1.11.4生成多种互为补充的视图
第2章 将用户关系与社交图谱相对应
2.1网上社交图谱
2.2在网络中应用现实生活中的社交图谱
2.2.1自动划分用户群集
2.2.2隐私与安全性
2.2.3建立信任
2.3共享隐私用户数据:选择参与和选择退出
2.3.1选择参与共享模型
2.3.2选择退出共享模型
2.4理解关系模型
2.4.1关注者模型
2.4.2联系人模型
2.4.3群模型
2.5关系与实体
2.6构建社交相关性:探索Facebook社交图谱
2.6.1以真实身份为基础
2.6.2理解传播渠道
2.6.3构建用户群
2.6.4避免生成不相关的社交图谱
2.7通过OpenLink协议定义实体的好恶
2.7.1集成OpenLike小组件
2.7.2如何显示共享的“赞”的内容
2.8小结
第3章 构建社交应用平台的基础
3.1学习内容
3.2 Apache Shindig
3.3安装Shindig
3.3.1在Mac OS X (Leopard)上安装Shindig
3.3.2在Windows上安装Shindig
3.3.3 测1试Shindig安装实例
3.4 Partuza
3.4.1要求
3.4.2在Mac OS X (Leopard)上安装Partuza
3.4.3在Windows上安装Partuza
3.4.4测试安装的Partuza
3.5 OpenSocial小工具XML规范
3.6用ModulePrefs配置应用程序
3.6.1 Require/Optional
3.6.2 Preload
3.6.3 Icon
3.6.4 Locale
3.6.5 Link
3.7定义用户首选项
Enum数据类型
3.8应用程序内容
3.8.1定义内容视图
3.8.2内置内容与代理内容
3.9融会贯通
第4章 以OpenSocial JavaScript引用定义功能
4.1学习内容
4.2包含OpenSocial功能JavaScript库
4.3动态设置小工具视图的高度
4.4在小工具中插入Flash电影
4.5向用户显示消息
4.5.1生成消息
4.5.2设定消息窗口的位置
4.5.3设定消息和窗口的类型
4.6以用户首选项保存状态
4.7以编程方式设置小工具标题
4.8集成选项卡式的小工具用户界面
4.8.1基本小工具
4.8.2根据标记创建选项卡
4.8.3利用JavaScript创建选项卡
4.8.4获取与设置TabSet的信息
4.9向Shindig添加自己的JavaScript库
4.10融会贯通
4.10.1生成小工具XML文件
4.10.2使用Shindig显示小工具
第5章 迁移应用程序、个人资料和朋友关系
5.1学习内容
5.2评估OpenSocial容器的支持
5.3 OpenSocial规范的核心组件
5.3.1核心API服务器规范
5.3.2核心小工具容器规范
5.3.3社交API服务器规范
5.3.4社交小工具容器规范
5.3.5 OpenSocial容器规范
5.4跨容器开发与迁移
5.4.1使用混合式客户端-服务器环境
5.4.2将社交功能与主体应用程序代码拆开
5.4.3避免使用容器特有的标签
5.5从Facebook向OpenSocial迁移应用程序
5.5.1为非社交应用构造采用iframe
5.5.2抽象Facebook功能逻辑
5.5.3将可视标记与编程逻辑区分开来
5.5.4使用REST端点,而不是FQL
5.5.5在服务器端实现大部分代码
5.6用个人资料数据实现应用程序的个性化
5.6.1 Person对象
5.6.2 Person数据抽取方法
5.6.3 Person对象中的可用字段
5.6.4扩展Person对象
5.6.5收集用户个人资料
5.7利用朋友关系增加受众数
请求收集用户朋友关系
5.8融会贯通
5.8.1小工具规范
5.8.2 Content标记
5.8.3 JavaScript
5.8.4运行小工具
第6章 OpenSocial活动、共享和数据请求
6.1学习内容
6.2用OpenSocial活动来推广应用程序
6.2.1利用活动更新实现应用程序体验的个性化
6.2.2通过活动更新增加应用程序的用户数
6.3直接共享与被动共享
6.3.1直接共享
6.3.2被动共享
6.3.3平衡共享
6.4发出AJAX和外部数据请求
6.4.1发出标准数据请求
6.4.2用数据请求推送内容
6.4.3使用签名请求保护数据连接的安全
6.5融会贯通
第7章 高级OpenSocial和未来OpenSocial
7.1学习内容
7.2数据管道
7.2.1数据请求类型
7.2.2使数据可供代理数据请求使用
7.2.3在客户端处理管道化数据
7.2.4处理由数据管道生成的错误
7.2.5动态参数
7.3 OpenSocial模板化
7.3.1获得标记与数据的不同方法
7.3.2呈现模板
7.3.3表达式
7.3.4特殊变量
7.3.5条件
7.3.6循环内容
7.3.7将数据管道与模板相结合
7.3.8其他特殊标签
7.3.9模板库
7.3.10 JavaScript API
7.4更多标记:OpenSocial标记语言
7.4.1显示人名:os:Name
7.4.2创建人员选择器:os:PeopleSelector
7.4.3显示人员徽章:os:Badge
7.4.4载入外部HTML:os:Get
7.5用消息包支持本地化
7.6 OpenSocial REST API库
可用库
7.7未来OpenSocial:探索领域
7.7.1企业容器
7.7.2移动转换
7.7.3分布式Web框架
7.8 OpenSocial和分布式Web框架
7.8.1活动流
7.8.2 PubSubHubbub
7.8.3 Salmon协议
7.8.4开放图谱协议
7.9融会贯通
第8章 社交应用安全概念
8.1学习内容
8.2通过iframe托管第三方代码
8.3安全方法:Caja项目
8.4为什么使用Caja
8.5攻击向量 : Caja如何提供保护
8.5.1未经用户同意对其进行重定向
8.5.2挖掘用户的浏览历史
8.5.3用document.create Element执行任意代码
8.5.4记录用户的击键操作
8.6安装Caja
8.7从命令行清理脚本
8.7.1清理HTML和JavaScript
8.7.2修改清理器呈现格式
8.8从Web应用程序运行Caja
8.9用OpenSocial小工具运行Caja
8.9.1向小工具添加Caja
8.9.2实例
8.10使用JSLint尽早发现JavaScript问题
8.11使用Caja Playground
8.12 Caja环境中的使用技巧
8.12.1实现代码模块化:不要清理整个项目
8.12.2使用预清理的JavaScript库
8.12.3不要依靠Firebug或经过清理的JavaScript源代码
8.12.4不要在标记中嵌入事件
8.12.5集中JavaScript:仅请求数据和标记
8.13 Caja的轻量替代方法:ADsafe
8.14 ADsafe与Caja的对比:应当使用哪种方法
8.15如何实现ADsafe
8.15.1设置ADsafe对象
8.15.2 DOM对象
8.15.3用查询方法选择DOM
8.15.4使用群束对象
8.15.5附加事件
8.15.6定义库
8.16融会贯通
8.16.1数据源
8.16.2标头:脚本和样式
8.16.3主体:标记层
8.16.4主体:JavaScript层
8.16.5最终结果
8.17小结
第9章 用OAuth保护社交图谱访问的安全
9.1超越基本验证
9.1.1基本验证实现:工作方式
9.1.2反对使用基本验证的理由
9.2 OAuth 1.0a标准
9.2.1 OA uth 1.0a工作流程
9.2.2最终用户体验
9.2.3两方OAuth与三方OAuth的对比
9.2.4三方OAuth实现示例
9.2.5调试签名问题的工具与技巧
9.3 OAuth 2
9.31OAuth 2 工作流程
9.3.2实现示例:Facebook
9.3.3实现示例:在Facebook OAuth进程中请求更多的用户信息
9.3.4 实现示例:最终用户体验
9.3.5调试请求问题的技巧
9.4小结
第10章 社交的未来:通过分布式Web框架定义社交实体
10.1学习内容
10.2开放图谱协议:将Web页定义为社交实体
10.2.1元数据的兴起与衰落
10.2.2开放图谱协议如何工作
10.2.3实现开放图谱协议
10.2.4实例:Facebook开放图谱
10.2.5实例:从Web源收集开放图谱数据
10.2.6开放图谱协议的缺点
10.3活动流:社交活动的标准化
10.3.1为什么需要定义一个活动标准
10.3.2实施“活动流”
10.3.3对象类型
10.3.4动词
10.4 WebFinger:通过电子信箱地址扩展社交图谱
10.4.1从finger到WebFinger:WebFinger的起源
10.4.2实现WebFinger
10.4.3 WebFinger协议的缺点
10.5 OExchange:构建社交共享图谱
10.5.1 OExchange如何工作
10.5.2 OExchange的用途
10.5.3实现 OExchange
10.6 PubSubHubbub:内容整合
10.6.1 PubSubHubbub如何工作
10.6.2好处:从发布者到订阅者
10.6.3托管Hub和实现服务
10.6.4工作流程库
10.6.5用PHP构建发布者
10.6.6用Python构建发布者
10.6.7用PHP构建订阅者
10.6.8用Python构建订阅者
10.7 Salmon协议:会话实体的统一
10.7.1 Salmon协议工作流程
10.7.2建立在PubSubHubbub的基础之上
10.7.3防止滥用与垃圾信息
10.7.4实现概述
10.8小结
第11章 用OpenID扩展社交图谱
11.1 OpenID标准
11.1.1分散是关键
11.1.2相对于传统登录的改进
11.1.3访问现有成员身份数据库和社交图谱
11.2我是否已经拥有OpenID,如何注册一个
11.3 OpenID验证流程
11.4 OpenID提供商
11.5绕过OpenID中的域发现错误
11.6 OpenID扩展
11.6.1“简单注册”扩展
11.6.2“属性交换”扩展
11.6.3提供商验证策略扩展
11.6.4当前正在开发的扩展
11.7 OpenID实例
11.7.1使用PHP实现OpenID
11.7.2使用Python实现OpenID
11.8常见错误与调试技巧
11.8.1回调URL失配
11.8.2无法发现的OpenID标识符
11.9小结