一、微信概述
1、历史背景
1)2011年1月21日,腾讯推出微信(张小龙)
2)2012年8月20日,腾讯推出微信公众平台功能,同年11月开放第三方接口
3)2013年1月微信突破3亿,海外版wechat用户也达到7000万,以前和韩国客户沟通也是通过微信,可见微信已随处不在
2、微信公众平台
微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个Web平台,而微信公众账号的操作管理在这个平台下进行。所有用户都在腾讯提供的统一微信公众平台下进行相关操作:
平台地址:https://mp.weixin.qq.com/
3、微信与微信公众平台区别
微信是基于点对点关系
微信公众平台是基于一对多关系
4、为什么要学习微信开发
2013年6月速途研究院发布调查报告,22%的微信用户在使用订阅公众帐号功能,而只算微信有3亿用户,就约有6600多万用户在使用微信公众平台功能。
5、微信推荐
二、前期准备
1、微信公众平台注册
个人用户注册:
准备彩色手持身份证照片
企业用户准备:
营业执照注册号、所在地、成立日期、营业期限、经营范围
微信公众帐号名称(中文名)一经注册,不得修改,一定要体现帐号特色又容易记忆的名称。功能介绍每月1次
注册成功后,需要7个工作日进行审核。
2、微信公众平台账号类型
订阅号:个人用户注册的微信类型,适合自媒体类型的平台,每天可以群发一条信息,但是如果没有进行微信认证其是没有微信自定义菜单的。
服务号:企业注册的微信类型,适合企业平台,每月可以群发四条信息,另外如果服务器没有通过微信认证其也是具有微信自定义菜单的。
3、微信的两种运营模式
-
编辑模式与开发模式
-
两种是互斥的
-
编辑模式是平台内置的web系统
-
开发模式可以通过腾讯的API接口进行二次开发
1)编辑模式
2)开发者平台
4、编辑模式中的自动回复功能
① 被添加自动回复(订阅回复或关注回复):当用户关注我们的微信公众平台时,系统会默认返回预先设定的内容,我们把这个回复就称之为"被添加自动回复"。
② 关键词自动回复:当用户输入的关键词与我们设定的关键词相匹配时,系统会自动回复预先设定的内容,我们把这个回复就称之为"关键词自动回复"。
③ 消息自动回复:当用户输入的关键词与我们设定的关键词不匹配时,系统会自动回复预先设定的内容,我们把这个回复就称之为"消息自动回复"。
三、微信开发者模式
1、微信开发原理图
1)编辑模式
2)开发者模式
由上图分析可知,如果想实现微信开发,必须要具有BAE服务器与客户端SVN软件
2、BAE(百度云引擎)准备
注册地址:bce.baidu.com,打开页面后,选择BAE基础版,效果如下图所示:
1)单击添加部署
2)设置完成后如下图所示:
等待状态改变为正常,代表已经创建成功。
3)使用SVN软件检出在线的BAE代码
然后使用SVN软件,检出该地址,如下图所示:
检出过程中,需要提供百度账号和密码,作为检出密码,谨记!!!
4)修改代码后,通过SVN上传到服务器端
特别注意:项目提交完成后,百度的BAE是不会及时生效的,必须手工发布,如下图所示:
但是这样非常麻烦,每次都需要手工更新,我们还可以单击weixin这个项目名称进入如下设置:
更改自动发布为On,如下图所示:
这样以后就不需要手工发布代码了。
3、微信服务器对接百度BAE
① 打开微信公众平台,进入基本配置选项:
② 单击配置按钮,如下图所示:
③ 填写数据(三个表单)
④ 下载官方的api即可
如果想让微信公众平台与第三方BAE服务器进行交互,必须需要一个中间文件(微信api即可),我们可以在帮助中心找到该文件:
找到如下图所示代码,下载api接口:
下载解压后,如下图所示:
⑤ 复制wx_sample.php文件到BAE目录中并改名为api.php
⑥ 打开api.php文件,设置"接头暗号Token"
设置完成后,通过SVN进行上传
⑦ 对接微信公众平台与BAE服务器
打开基本配置选项,填写信息如下:
设置完成后,单击启用即可
到此,整个连接过程配置完毕!
4、开启自动回复接口
默认情况下,api.php文件中,只开启了验证接口,但是其并没有开启自动回复接口,所以微信无任何响应。
打开api.php文件,然后设置如下代码,代表开启自动回复功能:
编写成功后,通过SVN上传到服务器端,通过微信测试如下图所示:
四、API接口分析
1、定义微信的TOKEN密钥,主要用于连接微信公众平台
2、定义微信对象,用于调用微信相关方法,实现相关操作
3、验证接口(了解)
4、自动回复接口(重点)
默认情况下,自动回复接口是关闭的,必须通过以下代码开启回复功能:
分析responseMsg接口:
1)接收XML格式的数据
2)防止XXE攻击
3)使用SimpleXML解析xml数据
4)通过属性来访问xml节点信息
5)根据接收的消息,设置返回值
以上代码代表当用户发送的关键词不为空时,系统会自动返回Welcome to wechat world!
五、微信的6大接收接口
虽然以上显示一共有7中消息类型,但是第4、第5种都是指视频消息,所以综合所述:只有6大类消息类型。
1、文本消息
由于所有的信息都是以XML形式发送的,所以我们在分析消息类型时,第一点就应该读懂XML结构体。
① 分析文本消息接口XML模板
通过以上图解分析可知,如果MsgType节点为text,代表用户发送给微信公众平台的就是文本消息。
② 定义一个$msgType变量,用于接收MsgType节点信息
③ 在回复接口中,判断$msgType这个变量并执行相关程序
编写完成后,通过SVN上传到BAE服务器,测试结果:
2、图片消息
① 分析XML结构体
分析以上图解可知,如果用户发送的是图片消息,则MsgType节点为image
② 定义$msgType节点(已定义)
③ 判断与执行
测试结果如下图所示:
3、其他消息
在微信开发中,所有的接收接口都非常简单,只需要判断$msgType这个节点就可以实现对用户发送数据类型的判断,完整代码如下:
$msgType=='voice' 语音消息
$msgType=='video' || $msgType=='shortvideo' 视频消息
$msgType=='location' 地理位置消息
$msgType=='link' 链接消息(朋友圈分享的链接、我的收藏)
测试结果:
六、微信的3大回复接口
1、文本回复接口
① 组装XML格式的数据
② 定义相关变量
③ 格式化XML格式的数据
要用到的知识点:sprintf函数
主要功能:返回一个格式化的字符串
参数说明:
$format :要格式化的字符串(微信中就是我们的xml数据)
$args :要格式化的变量列表,变量与变量之间通过逗号隔开,顺序不能颠倒
格式化类型:%d(格式化为整型) %s(格式化为字符串类型)
④ 把格式化后的xml数据返回到客户端,完成回复功能
案例:使用文本接口完成简易号码簿
项目需求:用户在平台中输入?,系统自动弹出自定义回复文本信息如下:
【1】特种服务号码
【2】通讯服务号码
【3】银行服务号码
【4】用户反馈
当用户输入1,系统会自动弹出如下语句:
常用特种服务号码:
匪警:110
火警:119
急救中心:120
当用户输入2,系统会自动弹出如下语句:
常用通讯服务号码:
中移动:10086
中电信:10000
中联通:10010
当用户输入3,系统会自动弹出如下语句:
银行服务号码
建设银行:95533
工商银行:99588
农业银行:95599
当用户输入4,系统会自动弹出如下语句:
尊敬的用户,为了更好的为您服务,请将系统的不足之处反馈给我们。
反馈格式:@+建议内容
例如:@希望增加***号码
如果用户以@希望这种形式向平台输入信息,则返回如下语句:
感谢您的宝贵建议,我们会努力为您提供更好的服务!
示例代码:
问号的判断形式:
运行结果:
输出1234返回结果,示例代码:
运行结果:
2、音乐回复接口
分析音乐回复接口的XML模板
① 定义音乐回复接口的xml模板
② 定义相关变量
③ 格式化XML数据
④ 输出返回数据到客户端
测试结果:
3、图文消息接口(重点)
分析图文消息接口XML模板
① 定义图文消息接口XML模板
② 设置相关变量
③ 对XML数据进行格式化操作
④ 返回数据到客户端
测试结果:
在单图文的基础上实现多图文
测试结果:
说明:相对于单图文而言,多图文没有文章描述的显示,谨记!!!
七、微信LBS接口
1、什么是LBS
LBS全称(Location Based Service),基于地理位置的服务
2、为什么需要LBS
手机端相对于PC端,具有便于携带等优势,而且其内置的GPS芯片可以实时捕获到我们的地理位置信息。
3、LBS中的相关关键词
-
$longitude 经度
-
$latitude 纬度
4、分析微信中的LBS接口(地理位置接收接口)
5、使用变量接收地理位置的经纬度信息
6、通过文本消息接口返回经纬度信息
测试结果:
7、LBS第三方接口开发
第三方接口地址:百度API,http://developer.baidu.com/
选择门户,然后进入WebAPI,如下图所示:
分析API接口:
① 定义一个lbs.php页面,编写相关代码
② 编写代码,如下图所示:
③ 整合lbs代码到微信api接口中
编写完成后,使用SVN上传到百度的BAE平台
扩展地址:
高德地图、腾讯地址
八、微信的机器人开发
1、为什么需要微信机器人
在实际项目开发中,如果我们设定的关键词与用户输入的关键词不匹配时,系统默认没有任何响应,这样的体验度非常不好,为了解决这个问题,可以使用第三方机器人接口来实现对语言的对接。
2、目前主流的微信机器人
1)微信小黄鸡(小贱鸡)
2)小九机器人
3)微软小冰机器人
4)图灵机器人
3、图灵机器人开发
① 注册图灵账号,注册完成后,官方会发送一个使用密钥,进入后单击左侧进入机器人接入链接:
② 根据官方的API文档,定义一个tuling.php页面,编写代码如下:
③ 对接图灵机器人与微信公众平台