五、微信的3大发送接口
1、文本消息回复接口
文本XML模板
参考实例代码:
1)组装XML
2)使用文本消息回复
2、音乐回复接口
1)音乐消息接口XML模板:
2)使用音乐接口发送消息
效果:
扩展案例:在线音乐平台(作业)
思路:
关键词:音乐(文本消息接口)
如果是音乐回复,那么必须采用音乐回复接口:
重点有4个参数:标题\描述\标准链接\高清链接
3、图文接口(重点)
1)创建图文接口模板信息
2)使用单图文消息回复
3)使用多图文消息回复
效果如下:
六、订阅接口
微信5秒:
订阅接口(关注接口)XML模板
通过以上XML信息可以得出以下结论:
关注接口有两个参数不同于其他接口:
MsgType:event
Event:subscribe(订阅)
1)添加接收参数变量
2)判断与执行
七:LBS开发
1、什么是LBS?
LBS(Location Based Service):基于地理位置的服务
2、基于LBS的微信开发
$longitude 经度
$latitude 纬度
3、地址位置接口信息
通过观察可知:如果用户发送地理位置,那么我们在微信端接收时,首先接收MsgType为location,且可以接收到Location_X,Location_Y两个节点
$longitude = Location_Y;
$latitude = Location_X;
例1:通过经纬度确认用户所在地理位置
思路:可以通过第三方接口来实现对经纬度的判断
Google Map API(需FQ)
百度地图API
高德地图API
凯立德API
以百度地图API为例:
通过分析可知:
参数格式如下:
ak=密钥
location=经度,维度
output=json或xml
实验运行接口地址:发现可以正常返回信息,说明当前接口请求为get请求
file_get_contents模拟get请求
1)接收经纬度参数
2)使用第三方(百度LBS服务)确定当前地理位置
运行效果:
例2:案例:在三个地区开了三家餐馆,通过LBS服务为客户提供最近的餐馆信息
通过坐标拾取工具选点:
广州东站店:113.331222,23.156737
中山大学店:113.304775,23.103031
天朗明居店:113.398294,23.132483
可以采用百度API的测距接口,如下图:
通过观察可知:
ak = 密钥
waypoints :要测距经纬度信息,多个信息之间通过;隔开
output = xml|json :返回结果
通过运行可知,其模拟的是get请求
file_get_contents
示例代码:
运行效果:
扩展案例:百度API返回当前距离最近的酒店信息(作业)
思路:采用百度的周边搜索接口,已图文形式返回距离我们最近的5家酒店
扩展案例:使用高德地图返回当前位置与指定位置信息(步行、驾车、公交)(作业)
思路:高德地图
八、小黄鸡(小贱鸡)微信机器人开发
小黄鸡(国外):语言萌萌哒
小九机器人:语言滑稽,什么都敢说
小i机器人:语言正规
图灵机器人:比较正规,语言库丰富
以小九机器人为例:
http://www.xiaohuangji.com/ 小黄鸡(内核:小九)
在实际开发可能并没有很多接口提供给我们直接使用,这个时候我们就必须通过一些手段来获取其接口信息
抓包:
Fiddler
HttpWatch
以HttpWatch为例:
打开网址,输入hello查看显示框信息:
分析以上结果可以得出以下结论:
真实的请求地址为http://www.xiaohuangji.com/ajax.php
发送请求为post请求(PHP要模拟post)
发送的参数为para
1)模拟POST请求
curl库:
PHP[1] 支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。
2)如何使用curl库
curl四步走:
第一步:初始化curl请求(句柄)
$ch = curl_init();
第二步:设置请求参数
curl_setopt($ch,CURL参数,CURL参数的值);
第三步:执行curl操作
$output = curl_exec($ch);
第四步:关闭curl句柄
curl_close($ch);
3)curl模拟破解小黄鸡
扩展案例:小i机器人,图灵机器人(作业)
小i地址:http://www.ibotcloud.com/algorithm.jsp