目录 4)更改wx_sample.php文件为api.php并上传到SAE平台 扩展案例:使用高德地图返回当前位置与指定位置信息(步行、驾车、公交)(作业) 一、微信历史起源1、微信起源1)2011年1月21日,腾讯推出微信(张小龙) 2)2012年8月20日,腾讯推出微信公众平台功能,同年11月开放第三方接口 3)2013年1月微信突破3亿,海外版wechat用户也达到7000万,以前和韩国客户沟通也是通过微信,可见微信已随处不在 2、为什么要学习微信开发2013年6月速途研究院发布调查报告,22%的微信用户在使用订阅公众账号功能,而只算微信有3亿用户,就约有6000多万用户在使用微信公众平台功能。 3、微信与微信公众平台区别微信:点对点 微信公众平台:一对多 4、微信推荐5、内容提纲 微信公众平台 微信官方接口分析 微信开发原理 微信6大接口的全解析 lbs开发+小贱鸡(或小i机器人) 响应式设计 curl与自定义菜单 数据库支持 案例开发 二、微信公众平台1、微信平台登陆登陆后,如下图所示 2、微信功能详解1)群发功能:订阅号:每天可以群发1条信息 服务号:拥有自己的自定义菜单,每月可以群发4条信息 2)自动回复被添加自动回复(关注|订阅回复):当我们关注或订阅某个公众账号时,系统自动回复信息 关键词自动回复:当我们输入的关键词与用户输入的关键词相匹配时,自动回复设定的信息 未全匹配:模糊匹配 已全匹配:精准匹配 消息自动回复:当我们输入的关键词与用户输入的关键词不匹配时,系统自动回复消息自动回复 三、微信公众平台开发者模式1、微信公众平台开发原理1)微信的编辑模式2)微信的开发者模式2、如何建立腾讯服务器与自定义服务器的联系1)拥有自己的服务器(BAE、SAE)创建应用gzitcast888 2)设置微信接头暗号(微信API接口)单击开发者文档里面的接入指南,下载api接口文件 3)系统如何验证腾讯服务器是否与自定义服务器产生沟通:4)更改wx_sample.php文件为api.php并上传到SAE平台5)填写微信开发者中心的url接口与token令牌6)保存验证7)注释掉一下代码8)调用responseMsg方法注:有时由于微信缓存问题,可能导致代码无法立即生效,可以采用取消关注并再次关注或等待片刻解决此问题。 3、reponseMsg()方法分析:sprintf函数:格式化字符串 语法:第一个参数是要格式化的字符串,后面的参数与要格式化的数据是一一对应 四、微信的6大接口文本消息 图片消息 语音消息 视频消息 地理位置消息 链接消息(图文消息) 1、文本消息接口接口语法: 如果用户发送的消息为文本消息,那么MsgType参数text文本类型,MsgId可省略 示例代码: 添加以下信息,用于判断接收信息类型 通过判断msgType变量判断发送消息类型 测试: 2、图片消息接口通过接口信息可知:如果MsgType为image代表当前为图片消息接口 3、语音消息如果用户发送的消息为语音消息,那么MsgType参数voice语音类型 4、视频消息如果用户发送的消息为视频消息,那么MsgType参数video 5、地理位置接口如果用户发送的消息为地理位置消息,那么MsgType参数为location 6、链接消息 如果用户发送的消息为链接消息,那么MsgType参数为link 案例:模拟简易号码簿当系统输入?或?号时,系统自动弹出一下提示: 客官,有什么能为您服务的么?我们有很多特殊服务哦? 【1】特种服务号码 【2】通讯服务号码 【3】银行服务号码 【4】用户反馈 当用户输入1234时,系统自动返回如下信息,示例代码如下: 其他代码请自行完成。 效果如下: 五、微信的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(需翻墙) 百度地图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./小黄鸡(内核:小九) 在实际开发可能并没有很多接口提供给我们直接使用,这个时候我们就必须通过一些手段来获取其接口信息 抓包: Fiddler HttpWatch 以HttpWatch为例: 打开网址,输入hello查看显示框信息: 分析以上结果可以得出以下结论: 真实的请求地址为http://www./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机器人,图灵机器人(作业) |
|