第1章 公众平台基础知识 1
1.1公众平台简介 1
1.1.1平台定位 1
1.1.2发展历程 2
1.2注册公众账号 3
1.2.1 公众账号的分类 3
1.2.2注册账号所需资料 4
1.2.3公众账号的注册流程 5
1.3公众平台的使用 8
1.3.1功能 9
1.3.2管理 11
1.3.3服务 14
1.3.4统计 15
1.3.5设置 16
1.4公众账号认证 17
1.4.1认证条件 18
1.4.2微信认证流程 18
1.4.3微博认证流程 19
1.5小结 19
第2章 编辑模式的使用 20
2.1编辑模式的应用场景 20
2.2自动回复 20
2.2.1被添加自动回复 21
2.2.2消息自动回复 22
2.2.3关键词自动回复 22
2.2.4自动回复优先规则 24
2.3案例:简易号码簿 24
2.3.1案例功能描述 25
2.3.2数据准备 25
2.3.3设计关注提示语 25
2.3.4设计关键词规则 26
2.3.5设置默认回复 28
2.3.6测试体验 28
2.4自定义菜单 29
2.4.1编辑菜单 30
2.4.2预览和发布菜单 32
2.5小结 33
第3章 开发模式的启用 34
3.1开发模式的基础知识 34
3.1.1启用开发模式的必备条件 34
3.1.2应用引擎简介 34
3.1.3开发工具介绍 35
3.2开发请求校验程序 36
3.2.1开发者文档介绍 37
3.2.2明确请求校验流程 37
3.2.3请求校验流程分析 38
3.2.4请求校验程序的实现 40
3.2.5本地测试 43
3.2.6导出WAR包 44
3.3 BAE的使用 46
3.3.1注册账号 46
3.3.2创建应用 47
3.3.3托管设置 47
3.3.4部署应用 48
3.3.5获取访问地址 49
3.4启用开发模式的步骤 49
3.5小结 51
第4章 消息的接收与响应 52
4.1消息交互基础知识 52
4.1.1消息交互流程 52
4.1.2消息的分类 53
4.2消息结构的封装 54
4.2.1封装请求消息 54
4.2.2封装事件 63
4.2.3封装响应消息 68
4.3消息的处理 79
4.3.1 Dom4j的使用 79
4.3.2 XStream的使用 80
4.3.3解析请求消息 83
4.3.4响应消息对象转XML 85
4.4案例:消息的接收与响应 88
4.4.1开发准备工作 88
4.4.2消息封装类 88
4.4.3封装消息处理工具 89
4.4.4使用CoreServlet类完成消息的接收与响应 93
4.4.5使用CoreService类完成消息的处理 95
4.4.6部署应用及测试体验 97
4.5小结 98
第5章 自定义菜单的使用 99
5.1发送HTTPS请求 99
5.1.1两种解决方法 99
5.1.2自定义信任管理器 100
5.2接口访问凭证 101
5.2.1获取凭证接口介绍 101
5.2.2获取凭证的方式 102
5.3自定义菜单接口 105
5.3.1菜单按钮的分类 105
5.3.2菜单结构说明 105
5.3.3封装菜单结构 106
5.3.4案例:创建菜单 109
5.3.5菜单的查询与删除 111
5.4响应菜单点击事件 111
5.5接口调用频率限制 112
5.6案例:网址导航 112
5.6.1案例功能描述 113
5.6.2案例开发准备 113
5.6.3封装通用工具类 115
5.6.4封装菜单工具类 118
5.6.5创建自定义菜单 120
5.6.6实现业务逻辑 123
5.6.7部署应用及测试体验 125
5.7小结 126
第6章 高级接口的使用 127
6.1语音识别 127
6.1.1开启语音识别功能 128
6.1.2如何获取语音消息 128
6.2客服接口 129
6.2.1接口描述 129
6.2.2方法封装 131
6.2.3案例:发送客服消息 134
6.3 OAuth2.0网页授权 134
6.3.1配置网页授权回调域名 135
6.3.2网页授权流程 135
6.3.3方法封装 139
6.3.4案例:通过网页授权获取用户信息 145
6.4生成带参数二维码 149
6.4.1创建临时二维码 149
6.4.2创建永久二维码 152
6.4.3换取二维码 154
6.4.4案例:通过ticket换取二维码 155
6.5获取用户地理位置 155
6.5.1开启获取用户地理位置功能 156
6.5.2接收上报地理位置事件 156
6.6获取用户基本信息 157
6.6.1接口描述 157
6.6.2方法封装 158
6.6.3案例:获取用户基本信息 162
6.7获取关注者列表 163
6.7.1接口描述 163
6.7.2方法封装 164
6.7.3案例:获取公众账号关注者列表 166
6.8用户分组接口 166
6.8.1查询分组 167
6.8.2创建分组 169
6.8.3修改分组名 171
6.8.4移动用户分组 173
6.9上传及下载多媒体文件 174
6.9.1上传多媒体文件接口描述 174
6.9.2使用抓包工具分析文件上传请求 176
6.9.3上传多媒体文件方法封装 179
6.9.4下载多媒体文件 183
6.9.5案例:上传及下载语音文件 184
6.10小结 185
第7章 网络表情的使用 186
7.1微信支持的网络表情 186
7.2 QQ表情 186
7.2.1微信上的QQ表情代码 187
7.2.2在微信上发送QQ表情 189
7.2.3 QQ表情的识别 190
7.2.4回复QQ表情 191
7.2.5案例:原样回复QQ表情 191
7.3 E moji表情 192
7.3.1微信上的Emoji表情编码 193
7.3.2如何使用Emoji表情编码 196
7.3.3案例:回复Emoji表情 196
7.4小结 198
第8章 公众平台开发技巧 199
8.1图文消息使用详解 199
8.1.1单图文消息的实现 199
8.1.2多图文消息的实现 200
8.1.3图文消息使用注意事项 201
8.2公众账号无响应的处理 202
8.2.1公众账号无响应的几种情况 202
8.2.2计算字符串所占字节数 202
8.3应用开发最佳实践 204
8.3.1解析消息创建时间 204
8.3.2换行符的使用 205
8.3.3网页超链接的使用 206
8.3.4隐藏浏览器工具栏 206
8.3.5表情飘落效果 207
8.4识别微信浏览器 208
8.4.1判断微信浏览器 208
8.4.2只允许微信浏览器访问 210
8.5服务多个公众账号 211
8.5.1公众账号托管平台原理 211
8.5.2案例:服务两个公众账号 213
8.6业务系统对接 214
8.6.1短信方式绑定账号 215
8.6.2网页方式绑定账号 215
8.7公众平台开发测试 215
8.8小结 216
第9章LBS应用开发实战:周边搜索 217
9.1“周边搜索”功能及设计 217
9.1.1使用方法 217
9.1.2功能演示 217
9.1.3需求分析 218
9.1.4数据表设计 219
9.2百度地图API的使用 220
9.2.1百度地图API产品简介 220
9.2.2申请访问密钥 221
9.2.3 Place API的使用 221
9.2.4步行导航检索的使用 224
9.2.5百度坐标转换 225
9.3 MySQL的使用 227
9.3.1 MySQL的下载与安装 228
9.3.2 MySQL的常用操作 228
9.3.3 JDBC的基本使用 232
9.3.4案例:使用JDBC查询数据 234
9.4 BAE的MySQL服务 235
9.4.1创建数据库 235
9.4.2使用phpMyAdmin操作MySQL 237
9.4.3案例:使用JDBC操作MySQL 237
9.5“周边搜索”应用实现 241
9.5.1应用开发准备 241
9.5.2封装数据库操作 241
9.5.3封装百度地图操作 245
9.5.4编写步行导航页面 251
9.5.5 CoreService类的实现 252
9.5.6部署应用及测试体验 256
9.6小结 257
第10章 游戏开发实战:猜数字 258
10.1“猜数字”功能及设计 258
10.1.1游戏规则 258
10.1.2游戏术语 259
10.1.3核心流程设计 259
10.1.4数据表设计 259
10.2“猜数字”游戏的实现 261
10.2.1游戏开发准备 261
10.2.2游戏算法封装 262
10.2.3数据库操作封装 265
10.2.4核心处理逻辑 273
10.2.5 CoreService类的实现 277
10.2.6部署应用及测试体验 279
10.3小结 280
第11章 智能聊天应用开发实战:聊天机器人 281
11.1聊天机器人原理及设计 281
11.1.1实现原理 281
11.1.2数据表设计 283
11.2全文检索引擎Lucene 285
11.2.1 Lucene的组成结构 286
11.2.2倒排索引结构 286
11.2.3索引和检索原理 288
11.2.4常用API介绍 288
11.2.5 Lucene的评分机制 290
11.2.6案例:使用Lucene索引和检索 291
11.3中文分词 296
11.3.1中文分词方法 296
11.3.2 IK分词器的使用 297
11.4索引浏览器Luke 299
11.4.1 Luke的功能及下载 299
11.4.2 Luke的用法 300
11.5聊天机器人的实现 301
11.5.1应用开发准备 301
11.5.2封装数据库操作 301
11.5.3封装聊天服务类 307
11.5.4 CoreService类的实现 311
11.5.5应用启动时创建索引 313
11.5.6部署应用及测试体验 314
11.6小结 314
附录 返回码及接口调用次数说明 316