前言
第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
· · · · · · (
收起)