本书是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台应用开发的先驱者之一。本书全面介绍微信公众平台应用开发所需各项技术,系统解读微信公众平台开放的API和各项高级功能,逐步讲解微信公众平台应用开发的流程、方法和技巧。注重实战,不仅通过3个案例呈现了娱乐型、应用型、游戏型应用的完整开发过程,而且还实现了一个快速开发公众平台应用的框架,读者可以直接用于快速开发自己的公众平台应用。
全书一共9章,在逻辑上分为4大部分:第一部分(第1章)介绍了微信公众平台的开发模式、数据交互方式,以及开发公众平台应用所需要的各项技术;第二部分(2~4章)首先详细讲解了微信公众平台开放的所有API的功能特性及使用方法,然后实现了一个快速开发公众平台应用的框架,这个框架可供读者直接使用;第三部分(5~7章)以迭代的方式讲解了3个案例的完整开发过程,这三个案例涉及的应用分别是娱乐型、应用型和游戏型的,用到了人脸识别等各种技术;第四部分(8~9章)详细探讨了应对海量请求和恶意请求的方法,这是企业运营公众账号(尤其是服务号)时容易忽视的,但也是应该重点关注的。
封面图
目录
- 前言
- 第1章 搭建开发环境和相关技术介绍1
- 1.1 微信公众平台简介1
- 1.2 公众平台开发模式的数据交互方式2
- 1.3 AppServ的安装与配置4
- 1.4 zendstudio的安装与配置10
- 1.5 相关技术介绍13
- 1.5.1 PHP13
- 1.5.2 HTTP24
- 1.5.3 XML27
- 1.5.4 MySQL29
- 1.5.5 HTML532
- 1.6 小结36
- 第2章 微信公众平台API详解37
- 2.1 网址接入37
- 2.1.1 接口配置信息37
- 2.1.2 Token验证38
- 2.2 接收用户信息39
- 2.2.1 文本消息39
- 2.2.2 图片消息40
- 2.2.3 地理位置消息41
- 2.2.4 链接消息42
- 2.3 向用户回复消息43
- 2.3.1 回复文本消息43
- 2.3.2 回复音乐消息45
- 2.3.3 回复图文消息47
- 2.4 事件推送48
- 2.5 会话界面自定义菜单49
- 2.5.1 获取凭证的方法49
- 2.5.2 自定义菜单的创建50
- 2.5.3 自定义菜单的获取54
- 2.5.4 自定义菜单的删除55
- 2.5.5 菜单相关接口的限制55
- 2.6 小结55
- 第3章 开发你的第一个应用—echo server56
- 3.1 实现网址接入56
- 3.2 解析用户输入并组装返回59
- 3.3 错误处理62
- 3.4 封装代码64
- 3.4.1 日志封装64
- 3.4.2 一个简单的框架69
- 3.4.3 数据库访问封装75
- 3.5 小结89
- 第4章 带自定义菜单的echo server90
- 4.1 在编辑模式中使用自定义菜单90
- 4.2 使用CURL发送HTTP请求93
- 4.2.1 使用CURL发送请求的基本流程93
- 4.2.2 获取CURL请求的输出信息94
- 4.2.3 使用CURL发送GET请求95
- 4.2.4 使用CURL发送POST请求97
- 4.2.5 使用CURL上传文件97
- 4.3 获取access_token99
- 4.4 自定义菜单的操作102
- 4.5 实现带自定义菜单的echo server109
- 4.6 小结113
- 第5章 实战案例1:娱乐性图片应用—“每日十幅图”114
- 5.1 需求和交互描述114
- 5.2 技术方案117
- 5.2.1 为什么使用问号117
- 5.2.2 为什么使用图文消息117
- 5.2.3 表设计117
- 5.2.4 批量重命名118
- 5.3 代码实现119
- 5.3.1 常量定义119
- 5.3.2 成员变量和初始化120
- 5.3.3 主业务逻辑121
- 5.3.4 总代码清单127
- 5.4 小结131
- 第6章 实战案例2:人脸识别应用——findface132
- 6.1 需求和交互描述132
- 6.2 人脸识别基本概念133
- 6.3 人脸识别OPENAPI134
- 6.4 数据库表设计136
- 6.5 后台逻辑设计137
- 6.6 代码实现138
- 6.6.1 配置定义部分138
- 6.6.2 Face++接口封装部分139
- 6.6.3 Group的创建和训练142
- 6.6.4 findface主逻辑142
- 6.7 把照片保存到本地145
- 6.8 小结148
- 第7章 实战案例3:趣味游戏—命运左轮149
- 7.1 游戏过程149
- 7.2 数据表设计151
- 7.3 自定菜单设计153
- 7.4 具体代码实现155
- 7.4.1 AbstractInterface.php159
- 7.4.2 WeChatCallBackMYZL.php161
- 7.4.3 Ready.php167
- 7.4.4 Start.php169
- 7.4.5 ChipIn.php173
- 7.4.6 PutMagic.php178
- 7.4.7 Shoot.php185
- 7.4.8 GetOp.php192
- 7.4.9 AddUser.php195
- 7.4.10 Matcher.php196
- 7.5 运行截图198
- 7.6 小结198
- 第8章 海量请求的应对方法199
- 8.1 影响公众账号的响应速度的因素199
- 8.1.1 网络时延199
- 8.1.2 请求处理时间200
- 8.2 使用高性能的Web组件200
- 8.2.1 安装201
- 8.2.2 配置和运行201
- 8.2.3 ab测试205
- 8.3 监控服务器的各项指标208
- 8.3.1 top命令208
- 8.3.2 vmstat和sar命令210
- 8.3.3 netstat命令210
- 8.3.4 Nmon监控211
- 8.4 使用缓存系统212
- 8.4.1 Redis简介212
- 8.4.2 Redis的使用和性能对比213
- 8.5 数据库的备份和扩展218
- 8.5.1 主从复制和读写分离219
- 8.5.2 数据库的垂直划分和水平划分220
- 8.6 接入层反向代理224
- 8.7 小结227
- 第9章 恶意请求的应对方法228
- 9.1 URL访问限制228
- 9.2 防止SQL注入232
- 9.3 用户输入导致XML格式错误234
- 9.4 PHP安全237
- 9.5 DDOS简介239
- 9.5.1 SYN flood239
- 9.5.2 应用层DDOS241
- 9.5.3 ReDOS241
- 9.6 小结245