小i机器人开发交流群内的开发者提问:如何在使用自己的服务器上请求小i机器人给的接口实现微信公众号的智能回复。基于这个问题,笔者写了本篇开发指南,并提供PHP版本 源码 供大家测试。
一、开发准备
1.点击注册微信公众平台 接口测试 帐号;
2.点击注册小i机器人iBotCloud账号;
3.建立自己的服务器,有独立IP且80端口未占用(推荐使用 云服务器 ,笔者使用的是新浪云服务器SAE。腾讯云/阿里云均可);
4.安装本地 开发环境 ,可以使用 Eclipse , Notepad++ 等(笔者使用的Eclipse for PHP),百度搜索“Eclipse for PHP”选择合适版本下载安装;
5.使用版本控制软件,可以用 git 、SVN(笔者使用的SVN,可视化操作较git相比更易上手)
二、开发思路
1.完成微信平台的消息响应;
2.在文本消息回复中请求小i机器人的接口;
三、开始开发
1.完成微信平台消息响应
微信服务器与我们自己搭建的服务器要建立连接,如何让微信服务器识别是我们的服务器在和微信服务器通话呢?这就需要我们编程实现。我们先看下微信官方给的业务逻辑流程图,如图1所示,先提取signnature等一系列字段,再提取TOKEN,最后匹配数据源。验证成功则再进行下一步业务逻辑(这段分析较为拗口,如果不理解没有关系。待coding了一段时间之后,便自行明朗)。
1.登录SAE,如图2所示。
2.创建新应用,如图3所示。
3.选择新应用的参数,如图4所示。
参数不要选错,选择PHP语言、标准环境、语言版本5.6、代码管理SVN、二级域名( 自己随便取,这个很重要是微信平台中要填写的Url )。免费创建应用。
4.创建代码版本,如图5所示。
1.2Eclipse中检出SAE项目
1.在Eclipse中checkout新浪云中的项目,如图6所示。
SVN仓库信息如图7所示。在Eclipse中选择“从SVN检出项目”,输入图6所示的信息(不同应用对应不同的信息),checkout出SAE的项目。
2.更改项目中PHP语言版本,如图8所示。
高版本的Eclipse默认PHP版本为7,而我们的SAE应用中PHP版本为5.6,因此需要调整Eclipse默认PHP版本。
1.3建立微信后台通信
1.在Eclipse项目工程中利用SVN上传代码至SAE服务器。
通过1.1,1.2两个步骤,我们已经把服务器、开发环境部署完毕。现在利用编程实现。在Eclipse中的index.php文件,删除原先代码并复制以下代码,保存上传至SAE。
2.在微信公众平台接口测试帐号中输入Url及TOKEN。
URL是之前自定义的二级域名,Token一般使用weixin(自定义),但需与代码中一致。输入后点击提交,配置成功(若配置不成功,多点几次;若依然未成功再联系笔者)。
至此,我们完成微信平台响应。
2.在文本消息回复中请求小i机器人接口
完成微信平台响应之后,我们要开始执行后续的业务逻辑。我们加入两个功能:
-
响应关注事件
-
响应文本消息
2.1.响应关注事件
我们需要在 public function responseMsg()函数中加入代码以执行业务逻辑操作,代码如下所示(不理解没关系,不影响后续操作)。
同时还要再写两个函数,一个是receiveEvent接收事件的函数,其中对关注事件”subscribe”做了响应,关注后回复”welcome to new test wechat!”
另一个函数是returnText用来回复文本信息
至此,完成响应关注事件的代码,测试效果如图10所示
2.2.响应文本消息
2.2.1.文本接收事件函数
receiveText代码如下所示。
2.2.2.小i机器人接口函数
-
注册登录后,获得小i机器人开发者的Key、Sectet
-
getXiaoiInfo代码如下所示。此版本为小i官方提供的PHP SDK精简而来。如果正式开发,推荐使用小i机器人官方提供的SDK。
至此我们完成小i 机器人的接入。效果如图12 所示。
四、全文总结
有开发能力的同学可以参考此篇文档接入小i机器人。文档中有不当之处请斧正。
关注笔者运营的微信公众号《学点编程》(shijiawen6),发送“001”获取《微信开发一之环境部署》文章以参考相关软件介绍;发送“003”获取《微信开发三之小i机器人》粗糙版的小i机器人接入文档。
五、获取源码
发送“小i机器人”至微信公众号后台获取源码。源码中需要将小i机器人的Key/Sceret修改为自己的参数。
联系笔者
微信:danielsjw,一起交流学习。
一般是PC版的这个rotdogmes.cn 还可以