第1章 微信公众平台的作用 1
1.1 认识微信公众平台 1
1.1.1 群发消息 1
1.1.2 自动回复消息 3
1.1.3 通过自定义回复接口扩充功能 4
1.1.4 通过自定义菜单接口扩充功能 4
1.2 申请微信公众平台账号 6
1.2.1 注册前的准备 6
1.2.2 公众账号的注册 7
1.2.3 申请服务号还是订阅号 12
1.3 微信公众平台管理 13
1.3.1 登录公众平台 13
1.3.2 消息管理 14
1.3.3 用户管理 15
1.3.4 素材管理 17
1.3.5 群发消息 21
1.4 高级功能之编辑模式 22
1.4.1 启用编辑模式 22
1.4.2 使用自动回复 23
1.5 高级功能之开发模式 25
1.5.1 启用开发模式 25
1.5.2 申请测试账号 27
第2章 微信公众平台开发的环境准备 30
2.1 微信公众平台运行原理 30
2.1.1 初学者的疑问 30
2.1.2 微信公众平台运行原理 31
2.2 公众账号服务器 32
2.2.1 公众账号服务器需具备的条件 32
2.2.2 准备一台Web服务器 33
2.3 使用百度应用引擎BAE 34
2.3.1 申请百度开发者账号 34
2.3.2 创建一个工程 37
2.3.3 部署程序代码 39
2.3.4 上传代码到百度云 41
2.3.5 浏览代码结果 47
2.4 设置微信接口配置 49
2.4.1 登录配置测试账号 49
2.4.2 接口配置 50
2.4.3 开发接口验证 51
2.5 简单案例:自动回复消息 55
2.5.1 案例描述 55
2.5.2 编写PHP代码 55
2.5.3 上传测试 57
第3章 微信公众平台开发的知识准备 59
3.1 搭建微信公众平台的开发环境 59
3.1.1 下载安装Eclipse 59
3.1.2 在Eclipse中编写微信公众平台代码 63
3.2 微信公众平台开发最简单语言:PHP 67
3.2.1 初识PHP 67
3.2.2 PHP基本语法 67
3.2.3 PHP分支:选择不同功能 69
3.2.4 PHP循环:重复同一功能 74
3.2.5 用PHP数组保存微信中的信息 78
3.3 微信用XML封装消息 83
3.3.1 什么是XML 84
3.3.2 XML语法简介 86
3.3.3 初探微信消息的XML格式 90
3.4 微信封装信息的另一种格式:JSON 91
3.4.1 JSON语法格式 92
3.4.2 JSON格式的微信数据 94
3.5 微信公众账号与用户之间的数据传输 95
3.5.1 HTTP协议 96
3.5.2 GET方法 97
3.5.3 POST方法 98
3.5.4 GET与POST的区别 99
3.6 如何长期保存与用户交互的信息 100
3.6.1 常用数据库系统 100
3.6.2 下载安装MySQL 101
3.6.3 PHP使用MySQL中的数据 104
3.6.4 在百度云中申请免费数据库 107
3.6.5 使用百度云数据库 109
第4章 处理微信的基本消息 112
4.1 编写获取微信用户发来消息的代码 112
4.1.1 获取微信用户发来的文本 112
4.1.2 获取微信用户发来的图片 117
4.1.3 下载微信用户发来的图片 120
4.1.4 获取微信用户发来的地理位置 127
4.1.5 获取微信用户发来的链接 130
4.2 编写给用户发送消息的代码 133
4.2.1 发送文本内容给微信用户 133
4.2.2 发送图片给微信用户 134
4.2.3 发送音乐给微信用户 137
4.2.4 发送图文信息给微信用户 141
4.3 编写人工给用户发送消息的代码 145
4.3.1 客服消息接口 145
4.3.2 客服消息接口使用实例 148
4.4 案例:微信版在线客服 150
4.4.1 案例描述 150
4.4.2 编写PHP代码 152
4.4.3 上传测试 154
第5章 响应微信推送的事件 157
5.1 什么是事件 157
5.2 用户关注或取消关注的处理 158
5.2.1 关注和取消关注事件 158
5.2.2 欢迎关注者 158
5.3 用户扫描二维码的处理 161
5.3.1 生成带参数的二维码 161
5.3.2 响应用户扫描二维码 167
5.4 案例:给关注用户自动回复信息 168
5.4.1 案例描述 168
5.4.2 编写PHP代码 169
5.4.3 上传测试 171
第6章 管理用户 173
6.1 分组管理用户 173
6.1.1 公众账号中有哪些分组 173
6.1.2 新建一个分组 178
6.1.3 修改分组名称 181
6.2 管理关注者 183
6.2.1 获取关注者的OpenID列表 183
6.2.2 查询用户所在分组 187
6.2.3 将用户添加到分组中 189
6.3 获取用户基本信息 191
6.4 案例:获取所有用户的信息 195
6.4.1 案例描述 195
6.4.2 编写代码 195
6.4.3 运行测试 200
第7章 自定义微信底部的菜单 202
7.1 什么是自定义菜单 202
7.1.1 自定义菜单展示 202
7.1.2 自定义菜单的限制 203
7.2 管理自定义菜单 204
7.2.1 创建自定义菜单 204
7.2.2 查询用户自定义菜单 206
7.2.3 删除自定义菜单 208
7.3 自定义菜单事件 209
7.4 案例:“微音乐”的自定义菜单 211
7.4.1 案例描述 211
7.4.2 编写生成菜单的代码 211
7.4.3 执行代码生成菜单 214
7.4.4 编写响应用户事件的代码 214
7.4.5 测试菜单功能 216
第8章 高级应用之语音识别 217
8.1 收发语音和视频信息 217
8.1.1 接收微信用户发来的语音 217
8.1.2 发送语音给微信用户 220
8.1.3 接收微信用户发来的视频 223
8.1.4 发送视频给微信用户 227
8.2 使用微信的语音识别 230
8.2.1 开启语音识别功能 230
8.2.2 接收语音识别结果 232
8.3 案例:微信语音点歌台 235
8.3.1 案例描述 235
8.3.2 编写代码 236
8.3.3 上传测试 238
第9章 高级应用之API 240
9.1 使用扩展API 240
9.1.1 什么是扩展API 240
9.1.2 百度API 240
9.1.3 查询指定地址的经纬度(Geocoding接口) 242
9.2 回家的距离 247
9.2.1 能计算距离的API 247
9.2.2 用户到家还有多远 248
9.3 人机聊天 252
9.3.1 申请小黄鸡账号 252
9.3.2 调用小黄鸡接口 257
9.3.3 公众账号调用小黄鸡 259
第10章 综合应用案例:微信通译 262
10.1 案例概述 262
10.2 案例分析 262
10.2.1 英汉词典功能的需求 262
10.2.2 百度词典 263
10.2.3 百度翻译 265
10.2.4 百度翻译API 266
10.3 百度翻译API的使用 267
10.3.1 申请API Key和扩容 267
10.3.2 调用形式及返回数据格式 269
10.3.3 在浏览器中调用百度翻译API 271
10.4 实现代码 272
10.4.1 编写调用百度翻译API的方法 272
10.4.2 处理用户发送的文本 273
10.5 案例测试 276
第11章 综合应用案例:天气早知道 280
11.1 案例概述 280
11.1.1 国家气象局提供的天气预报网站 280
11.1.2 天气预报API 281
11.2 编写代码 286
11.2.1 获取全国城市代码 286
11.2.2 获取天气预报信息 291
11.2.3 处理用户发来的消息 293
11.3 案例测试 295
第12章 综合应用案例:微信股票行情 297
12.1 案例概述 297
12.1.1 股票相关的知识 297
12.1.2 行情查询的功能 298
12.2 案例分析 299
12.3 实现代码 301
12.3.1 获取股票代码 301
12.3.2 编写调用新浪接口的代码 306
12.3.3 编写公众账号处理代码 309
12.4 案例测试 312
附录A 接口在线调试功能的使用 315