微信公众平台提供的接口很简单,先看看消息交互流程(图)
2021-06-24
微信公众平台提供的界面很简单,我们来看看消息交互过程:
通俗的讲,用户使用微信发送消息->微信给开发者发送数据->开发者处理消息并返回数据给微信->微信将返回的数据发送给用户,其间数据交互是通过 XML 完成的。就这么简单。
下面写一个例子来开发一个微信智能聊天机器人:
1.注册微信公众平台账号
微信公众平台:
注意:目前一张身份证只能注册两个账号。账号名与V认证相关。请谨慎注册。
2.申请服务器/虚拟主机
没有服务器/虚拟主机的童鞋可以使用BAE和SAE,不多介绍。
3.开启开发者模式
微信公众平台有两种模式,一种是编辑模式(傻瓜模式),简单但功能单一。另一种是开发者模式,可以通过开发实现复杂的功能。这两种模式是相互排斥的。显然,登录微信公众平台,通过“高级功能”菜单开启开发者模式。
4.填写接口配置信息
也是在“ ”菜单中配置的,需要配置两个参数:
URL:开发者应用访问地址,目前仅支持80端口,以“”为例。
:随意填写,用于生成签名,以“”为例。
填写完成后,将以下代码另存为.php并上传到目录,最后点击“提交”完成验证。
valid(); class wechat { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ) { return true; } else { return false; } } } ?>
这个东西就是微信公众平台验证网址是否被正确访问。研究代码没有实质性意义。确认无误后,即可删除该文件。它不会详细解释。对童鞋感兴趣的可以查看官方文档。
微信公众平台API文档:
5.微信公众平台功能开发
好的,如上所述,微信公众平台和开发者之间的数据交互是通过XML来完成的。既然用了XML微信公众平台开发 php,当然要遵循规范,所以在着手开发规范之前,先看看官方接口文档提供的XML,以短信为例:
当用户向微信公众号发送消息时,微信服务器会POST一些数据给开发者:
12345678 1234567890123456
开发者处理消息后需要将数据返回给微信服务器:
12345678 0
微信公众平台除了短信之外,还支持用户发送图片信息、地理位置信息、链接信息、事件推送。开发者也可以在微信公众平台回复音乐消息和图文消息。各种消息的XML规范也可以参考官方文档。
来看一个官方的PHP例子,我做了一些简化:
responseMsg(); class wechat { public function responseMsg() { //---------- 接 收 数 据 ---------- // $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据 //用SimpleXML解析POST过来的XML数据 $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID) $toUsername = $postObj->ToUserName; //获取接收方账号 $keyword = trim($postObj->Content); //获取消息内容 $time = time(); //获取当前时间戳 //---------- 返 回 数 据 ---------- // //返回消息模板 $textTpl = ""; $msgType = "text"; //消息类型 include('simsimi.php'); $contentStr = simsimi($keyword); //返回消息内容 //格式化消息模板 $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; //输出结果 } } ?> %s 0
将代码保存为 .php 并上传到目录。如果刚才没有删除文件,会被覆盖。
现在用户通过微信公众平台发送任何消息时,公众号都会返回一条内容为“”的消息。
接下来要做的是根据用户的消息动态返回结果~
(小黄鸡)目前是一个热门聊天机器人。我使用 CURL 开发了一个免费的(小黄鸡)界面。输入关键字将返回文本响应。这部分不是本文的重点,不再赘述。 ,直接上传代码(2014.07.28更新):
将以上两段代码整合在一起微信公众平台开发 php,就大功告成了。需要说明的是,微信服务器如果在5秒内没有收到响应,就会断开连接,可能通过这个接口超时,BAE和SAE已经被阻塞了。对于爬取请求,建议使用官方付费API,速度更快~
希望这篇文章对大家开发基于php的微信公众平台有帮助。