基于php的微信公众平台开发介绍示例
本文阐述了基于php的微信公众平台的开发方法。分享给大家参考。具体如下:
最近在做微信公众平台的开发,一口气写了20多个功能,很有意思~
今天分享一下我们的开发经验吧~微信公众平台提供的界面很简单。我们先来看看消息交互过程:
说白了就是用户用微信发消息——微信把数据发给开发者——开发者处理消息,把数据返回微信——微信把返回的数据发给用户,期间通过XML完成数据交互,就这么简单。我们来写一个开发微信智能聊天机器人:1的例子。注册微信公众平台账号。
微信公众平台:https://mp.weixin.qq.com/
注:目前一张身份证只能注册两个账户,户名与V认证有关。请仔细登记。2.申请服务器/虚拟主机
没有服务器/虚拟主机的童鞋可以用BAE和SAE,不介绍。3.打开开发者模式
微信公众平台有两种模式,一种是编辑模式(傻瓜模式),简单但功能单一。另一种是开发者模式,可以通过开发实现复杂的功能。这两种模式相互排斥。显然,登录微信公众平台,通过“高级功能”菜单打开开发者模式。4.填写接口配置信息
也在“高级功能”菜单中配置,需要两个参数:URL:开发者应用访问地址。目前只支持80个端口,取“http://www。以YoonPer.com/weixin/index.php"为例。以“YoonPer”为例,随意填写TOKEN:生成签名。填写完毕后,将下面的代码保存为index.php,并上传到http://www.YoonPer.com/weixin/目录。最后,点击“提交”完成验证。
?phpdefine('TOKEN ',' YoOnPer ');//TOKEN值$微信bj=new微信();$微信对象-有效();class微信{ public function valid(){ $ echoStr=$ _ GET[' echoStr '];if($ this-CheckSignature()){ echo $ echoStr;退出;} }私有函数checkSignature(){ $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ token=TOKEN$tmpArr=array($token,$timestamp,$ nonce);sort($ TMParr);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($tmpStr==$signature ) {返回true} else { return false} }}?这个窍门是检查微信公众平台是否正确访问了网址。研究代码是没有意义的。验证后,文件可以删除,因此不再详细说明。感兴趣的童鞋可以查看官方文件。微信公众平台API文档:http://mp.weixin.qq.com/wiki/index.php
5.开发微信公众平台功能
好的,如上所述,微信公众平台和开发者之间的数据交互是通过XML完成的。当然,既然使用了XML,就必须遵循规范。因此,在开始开发之前,先看看官方接口文档提供的XML规范,以文本消息为例。当用户向微信公众号发送消息时,微信服务器会向开发者:发布一些数据
xml!-开发者微信号- ToUserName![CDATA[toUser]]/ToUserName!-发件人帐户(OpenID) - FromUserName![CData[来自用户]]/来自用户名!-消息创建时间(整数)-createtime12345678/createtime!-消息类别(短信文本消息)- MsgType![CDATA1]/MsgType!-消息内容-内容![CData[内容]]/内容!-消息ID (64位整数)-msgid 1234567890123456/msgid/XML开发者处理完消息后需要将数据返回微信服务器3360。
xml!-收款人账号(OpenID) - ToUserName![CDATA[toUser]]/ToUserName!-开发者微信号-来自用户名![CData[来自用户]]/来自用户名!-消息创建时间(整数)-createtime12345678/createtime!-消息类别(短信文本消息)- MsgType![CDATA1]/MsgType!-回复消息内容-内容![CData[内容]]/内容!-星签操作(标志位0x0001时星签刚收到的消息)-funcflag 0/funcflag/XML除了短信,微信公众平台还支持用户发送图片消息、地理位置消息、链接消息、事件推送,开发者可以回复音乐消息、图文消息到微信公众平台。各种消息的XML规范也可以在官方文档中找到。我们来看看官方提供的一个PHP例子。我对:做了一些精简
?PHP/* | index.php【微信公众平台界面】author : LimYoonPer-*/$微信bj=新微信();$微信object-response msg();Class微信{ public function response msg(){///-receiving data-/$ post str=$ globals[' http _ raw _ post _ data '];//获取POST数据//用SimpleXML $ POST obj=simpleXMl _ load _ string($ POST str,' simpleXMl元素',libxml _ nocata)从POST解析XML数据;$ from username=$ PostObj-from username;//获取发件人帐户(OpenID)$ touser name=$ post obj-touser name;//获取接收者账号$ keyword=trim($ post obj-Content);//获取消息内容$ time=time();//获取当前时间戳///////[CDATA[% s]]/从用户名中使用用户名![CData[% s]]/from username create time % s/create time MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content FuncFlag 0/FuncFlag/XML ';$ msgType=' text//消息类型包括(' simsimsimi . PHP ');$ ContentStr=sim simi($关键字);//返回消息内容//格式化消息模板$ resultstr=sprintf ($ texttpl,$ fromusername,$ tousername,$ time,$ msgtype,$ content str);echo $ resultStr//输出结果}}?将代码保存为index.php,并上传到http://www.YoonPer.com/weixin/目录。如果刚才没有删除文件,会直接覆盖。现在,当用户通过微信公众平台发送任何消息时,公众账号都会返回一条内容为“http://www。YoonPer.com”。接下来需要做的就是根据用户消息动态返回结果~ simsimsimi(小黄鸡)是目前比较流行的聊天机器人。我用CURL开发了一个免费的SimSimi(小黄鸡)界面,输入的关键词会返回一个文本回复。这部分不是本文的重点,就不解释了,直接去代码(2014年7月28日更新):
?PHP/*-| simsimsimi . PHP[智能聊天(sim simi)]-|作者: LimYoonPer-*/函数sim simi($关键字){ $关键字=urlencode($关键字);//- 获取COOKIE-//$ URL=' http://www .sim simi。com/';$ ch=curl _ init($ URL);curl_setopt($ch,CURLOPT_HEADER,1);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$ content=curl _ exec($ ch);list($header,$body)=explode('\r\n\r\n ',$ content);preg_match_all('/set\-cookie:([^\r\n]*);/iU ',$header,$ matches);$cookie=内爆(';',$matches[1]).simsimi _ uid=1;curl _ close($ ch);//- 抓取回复-//$ URL='http://www.simsimi.com/func/reqN?LC=chft=0.0 req=$ keywordfl=http://www .西米。com/talk。htm ';$ ch=curl _ init($ URL);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_COOKIE,$ COOKIE);$ content=JSON _ decode(curl _ exec($ ch),1);curl _ close($ ch);if($ content[' result ']==' 200 '){ return $ content['句子_ resp '];} else { return '我还不会回答这个问题.}}?把上面两段代码整合在一起就大功告成了,需要说明一点,微信服务器在5秒内收不到响应会断掉连接,通过此接口有可能会超时,且SimSimi已经屏蔽了航空工程学士(航空工程学士)和美国汽车工程师学会(汽车工程师协会)上的抓取请求,推荐使用SimSimi官方收费原料药,速度比较快~
希望本文所述对大家基于服务器端编程语言(专业超文本预处理器的缩写)的微信公众平台开发有所帮助。
版权声明:基于php的微信公众平台开发介绍示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。