微信+开发介绍+使用 (上)
一、微信历史起源1、微信起源12011年1月21日腾讯推出微信22012年8月20日腾讯推出微信公众平台功能同年11月开放第三方接口32013年1月微信突破3亿海外版wechat用户也达到7000万以前和韩国客户沟通也是通过微信可见微信已随处不在2、为什么要学习微信开发2013年6月速途研究院发布调查报告22%的微信用户在使用订阅公众帐号功能而只算微信有3亿用户就约有6000多万用户在使用微信公众平台功能。3、微信与微信公众平台区别微信点对点微信公众平台一对多4、微信推荐5、内容提纲 微信公众平台 微信官方接口分析 微信开发原理 微信6大接口的全解析 lbs开发小贱鸡或小i机器人 响应式设计 curl与自定义菜单 数据库支持 案例开发二、微信公众平台1、微信平台登陆https://mp.weixin.qq.com登陆后如下图所示2、微信功能详解1群发功能订阅号每天可以群发1条信息服务号拥有自己的自定义菜单每月可以群发4条信息2自动回复被添加自动回复关注|订阅回复当我们关注或订阅某个公众账号时系统自动回复信息关键词自动回复当我们输入的关键词与用户输入的关键词相匹配时自动回复设定的信息未全匹配模糊匹配已全匹配精准匹配消息自动回复当我们输入的关键词与用户输入的关键词不匹配时系统自动回复消息自动回复三、微信公众平台开发者模式1、微信公众平台开发原理1微信的编辑模式2微信的开发者模式2、如何建立腾讯服务器与自定义服务器的联系1拥有自己的服务器BAE、SAE创建应用gzitcast8882设置微信接头暗号微信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参数video5、地理位置接口如果用户发送的消息为地理位置消息那么MsgType参数为location6、链接消息如果用户发送的消息为链接消息那么MsgType参数为link案例模拟简易号码簿当系统输入或?号时系统自动弹出一下提示客官有什么能为您服务的么我们有很多特殊服务哦【1】特种服务号码【2】通讯服务号码【3】银行服务号码【4】用户反馈当用户输入1234时系统自动返回如下信息示例代码如下其他代码请自行完成。效果如下五、微信的3大发送接口1、文本消息回复接口文本XML模板参考实例代码1组装XML2使用文本消息回复2、音乐回复接口1音乐消息接口XML模板2使用音乐接口发送消息效果扩展案例在线音乐平台作业思路关键词音乐文本消息接口如果是音乐回复那么必须采用音乐回复接口重点有4个参数标题\描述\标准链接\高清链接3、图文接口重点1创建图文接口模板信息2使用单图文消息回复3使用多图文消息回复效果如下六、订阅接口微信5秒订阅接口关注接口XML模板通过以上XML信息可以得出以下结论关注接口有两个参数不同于其他接口MsgTypeeventEventsubscribe订阅1添加接收参数变量2判断与执行七LBS开发1、什么是LBSLBSLocation 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为例http://developer.baidu.com/通过分析可知参数格式如下ak密钥location经度,维度outputjson或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/ 小黄鸡内核小九在实际开发可能并没有很多接口提供给我们直接使用这个时候我们就必须通过一些手段来获取其接口信息抓包FiddlerHttpWatch以HttpWatch为例打开网址输入hello查看显示框信息分析以上结果可以得出以下结论真实的请求地址为http://www.xiaohuangji.com/ajax.php发送请求为post请求PHP要模拟post发送的参数为para1模拟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);3curl模拟破解小黄鸡扩展案例小i机器人图灵机器人作业小i地址http://www.ibotcloud.com/algorithm.jsp图灵机器人http://www.tuling123.com/openapi/cloud/proexp.jsp