微信公众平台应用开发实战 第二版
作 者: 钟志勇,何威俊,冯煜博 著
出版时间: 2014
内容简介
《微信公众平台应用开发实战(第2版)》的第1版上市后广获好评,成为计算机领域的畅销书,被誉为“微信公众平台开发领域最好的书之一”,作者是来自腾讯官方的资深软件开发工程师,而且是微信公众平台应用开发领域的先驱者之一。第2版根据微信的最新版本做了全面升级,新增内容超过40%,同时对其他内容做了更新。内容全面,介绍了微信公众平台应用开发所需各项技术,详细讲解了所有基础接口、9大高级接口以及公众平台的各种高级功能,演示和总结了微信公众平台开发的流程、方法和技巧;实战性强,不仅通过3个案例呈现了娱乐型、应用型、游戏型应用的完整开发过程,而且还实现了一个快速开发公众平台应用的框架,读者可以直接用于快速开发自己的公众平台应用。此外,还从如何应对海量用户请求和用户的恶意请求的角度探讨了公众账号运营所涉及的技术难题。
目录
前言
第1章 微信公众平台介绍 / 1
1.1 微信公众账号的注册 / 2
1.1.1 基本信息 / 3
1.1.2 邮箱激活 / 3
1.1.3 信息登记 / 5
1.1.4 完善公众账号信息 / 10
1.2 微信公众账号的认证 / 10
1.3 编辑模式 / 13
1.3.1 自动回复 / 13
1.3.2 自定义菜单 / 18
1.4 开发模式简介 / 21
1.5 小结 / 23
第2章 使用云平台快速搭建公众账号 / 24
2.1 开启公众账号开发模式 / 24
2.2 使用新浪SAE搭建公众账号 / 25
2.2.1 注册新浪SAE / 25
2.2.2 在新浪SAE上创建App / 27
2.2.3 部署代码 / 29
2.2.4 开发接口的认证 / 29
2.2.5 实现简单的回复 / 31
2.3 使用百度BAE搭建公众账号 / 33
2.3.1 注册百度BAE / 33
2.3.2 在百度BAE上创建App / 35
2.3.3 部署代码 / 37
2.3.4 开发者接口的认证 / 39
2.3.5 实现简单的回复 / 41
2.3.6 BAE代码下载 / 42
2.4 在PC端进行开发调试 / 43
2.5 小结 / 44
第3章 微信公众平台API详解:基础接口 / 45
3.1 Token验证 / 45
3.2 接收消息 / 46
3.2.1 文本消息 / 46
3.2.2 图片消息 / 51
3.2.3 地理消息 / 53
3.2.4 语音消息 / 56
3.2.5 视频消息 / 57
3.2.6 链接消息 / 59
3.2.7 事件消息 / 61
3.3 回复消息 / 62
3.3.1 文本消息 / 62
3.3.2 图片消息 / 64
3.3.3 语音消息 / 66
3.3.4 音乐消息 / 67
3.3.5 视频消息 / 69
3.3.6 图文消息 / 71
3.4 小结 / 75
第4章 微信公众平台API详解:高级开发 / 76
4.1 会话界面自定义菜单 / 76
4.1.1 获取access_token凭证 / 76
4.1.2 自定义菜单创建 / 78
4.1.3 自定义菜单事件 / 82
4.1.4 自定义菜单获取 / 84
4.1.5 自定义菜单删除 / 85
4.1.6 各接口的调用频次限制 / 85
4.2 语音识别开发 / 86
4.3 自动获取用户地理位置信息 / 88
4.4 用户管理 / 91
4.4.1 查询分组 / 91
4.4.2 创建分组 / 93
4.4.3 修改分组名 / 94
4.4.4 获取关注者列表 / 95
4.4.5 获取用户基本信息 / 96
4.4.6 移动用户分组 / 97
4.5 上传/下载多媒体文件 / 98
4.5.1 上传多媒体文件 / 98
4.5.2 下载多媒体文件 / 100
4.6 客服接口 / 101
4.6.1 推送文本消息 / 101
4.6.2 推送图片消息 / 102
4.6.3 推送语音消息 / 104
4.6.4 推送视频消息 / 105
4.6.5 推送音乐消息 / 107
4.6.6 推送图文消息 / 109
4.7 二维码开发 / 111
4.7.1 创建二维码ticket / 111
4.7.2 通过ticket换取二维码 / 112
4.7.3 扫描带参数二维码事件 / 114
4.8 网页授权获取用户的基本信息(OAuth2.0) / 117
4.8.1 设置授权回调域名 / 117
4.8.2 微信用户同意授权并获取code / 119
4.8.3 通过code换取网页授权access_token / 121
4.8.4 刷新access_token / 123
4.8.5 拉取用户信息 / 125
4.8.6 完整的示例代码 / 126
4.9 wechat的JS开发 / 129
4.9.1 隐藏/显示微信中网页右上角按钮 / 129
4.9.2 隐藏/显示微信中网页底部导航栏 / 130
4.9.3 网页获取网络状态判断 / 131
4.9.4 网页内容分享开发 / 132
4.9.5 完整的示例代码 / 136
4.10 小结 / 138
第5章 搭建开发环境和相关技术介绍 / 139
5.1 AppServ的安装与配置 / 139
5.2 zendstudio的安装与配置 / 144
5.3 相关技术介绍 / 147
5.3.1 PHP / 147
5.3.2 HTTP / 158
5.3.3 XML / 162
5.3.4 MySQL / 163
5.3.5 HTML 5 / 166
5.4 小结 / 169
第6章 开发你的第一个应用——echo server / 170
6.1 实现网址接入 / 170
6.2 解析用户输入并组装返回 / 173
6.3 错误处理 / 175
6.4 封装代码 / 177
6.4.1 日志封装 / 178
6.4.2 一个简单的框架 / 182
6.4.3 数据库访问封装 / 187
6.5 小结 / 200
第7章 带自定义菜单的echo server / 201
7.1 在编辑模式中使用自定义菜单 / 201
7.2 使用CURL发送HTTP请求 / 204
7.2.1 使用CURL发送请求的基本流程 / 204
7.2.2 获取CURL请求的输出信息 / 205
7.2.3 使用CURL发送GET请求 / 206
7.2.4 使用CURL发送POST请求 / 207
7.2.5 使用CURL上传文件 / 208
7.3 获取access_token / 210
7.4 自定义菜单的操作 / 212
7.5 带自定义菜单的echo server / 219
7.6 小结 / 222
第8章 实战案例1:娱乐性图片应用——“每日十幅图” / 223
8.1 需求和交互描述 / 223
8.2 技术方案 / 226
8.2.1 为什么使用问号 / 226
8.2.2 为什么使用图文消息 / 226
8.2.3 表设计 / 226
8.2.4 批量重命名 / 227
8.3 代码实现 / 228
8.3.1 常量定义 / 228
8.3.2 成员变量和初始化 / 229
8.3.3 主业务逻辑 / 230
8.3.4 总代码清单 / 235
8.4 小结 / 239
第9章 实战案例2:人脸识别应用——findface / 240 9.1 需求和交互描述 / 240
9.2 人脸识别基本概念 / 241
9.3 人脸识别OPENAPI / 242
9.4 数据库表设计 / 243
9.5 后台逻辑设计 / 244
9.6 代码实现 / 246
9.6.1 配置定义部分 / 246
9.6.2 Face++接口封装部分 / 247
9.6.3 Group的创建和训练 / 249
9.6.4 findface主逻辑 / 250
9.7 把照片保存到本地 / 252
9.8 小结 / 255
第10章 实战案例3:趣味游戏——命运左轮 / 256
10.1 游戏过程 / 256
10.2 数据表设计 / 258
10.3 自定菜单设计 / 260
10.4 具体代码实现 / 262
10.4.1 AbstractInterface.php / 265
10.4.2 WeChatCallBackMYZL.php / 268
10.4.3 Ready.php / 273
10.4.4 Start.php / 275
10.4.5 ChipIn.php / 278
10.4.6 PutMagic.php / 283
10.4.7 Shoot.php / 289
10.4.8 GetOp.php / 296
10.4.9 AddUser.php / 298
10.4.10 Matcher.php / 300
10.5 运行截图 / 301
10.6 小结 / 301
第11章 海量请求的应对方法 / 302
11.1 影响公众账号的响应速度的因素 / 302
11.1.1 网络时延 / 302
11.1.2 请求处理时间 / 303
11.2 使用高性能的Web组件 / 303
11.2.1 安装 / 304
11.2.2 配置和运行 / 304
11.2.3 ab测试 / 308
11.3 监控服务器的各项指标 / 310
11.3.1 top命令 / 311
11.3.2 vmstat和sar命令 / 312
11.3.3 netstat命令 / 313
11.3.4 Nmon监控 / 313
11.4 使用缓存系统 / 314
11.4.1 Redis简介 / 314
11.4.2 Redis的使用和性能对比 / 315
11.5 数据库的备份和扩展 / 320
11.5.1 主从复制和读写分离 / 320
11.5.2 数据库的垂直划分和水平划分 / 322
11.6 接入层反向代理 / 325
11.7 小结 / 328
第12章 恶意请求的应对方法 / 329
12.1 URL访问限制 / 329
12.2 防止SQL注入 / 332
12.3 用户输入导致XML格式错误 / 335
12.4 PHP安全 / 337
12.5 DDOS简介 / 339
12.5.1 SYN flood / 339
12.5.2 应用层DDOS / 340
12.5.3 ReDOS / 341
12.6 小结 / 344
附录A 返回码说明 / 345